{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compare topic vectors\n",
    "\n",
    "Compares genres using their distribution across 100 topics generated by Latent Dirichlet Allocation.\n",
    "\n",
    "Let's start with some basic imports."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import csv, random\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import math, sys\n",
    "from collections import Counter\n",
    "from scipy import spatial\n",
    "from matplotlib import pyplot as plt\n",
    "from scipy.stats import pearsonr\n",
    "%matplotlib inline\n",
    "from sklearn.manifold import MDS"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load data\n",
    "\n",
    "Load the genre names, and then a file of metadata about volumes, and finally the doc-topic distribution generated by lda."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "genrenamedf = pd.read_csv('../metadata/selected_genres.tsv', sep = '\\t')\n",
    "genrenames = genrenamedf.loc[genrenamedf.genretype == 'primary', 'genre'].tolist()\n",
    "bgenres = genrenamedf.loc[genrenamedf.genretype == 'B genre', 'genre'].tolist()\n",
    "genrenames.extend(bgenres)\n",
    "\n",
    "intersection_genres = set(genrenamedf.loc[genrenamedf.genretype == 'intersection', 'genre'].tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>docid</th>\n",
       "      <th>author</th>\n",
       "      <th>shorttitle</th>\n",
       "      <th>enumcron</th>\n",
       "      <th>firstpub</th>\n",
       "      <th>genres</th>\n",
       "      <th>subjects</th>\n",
       "      <th>allcopiesofwork</th>\n",
       "      <th>tags</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>uc1.32106002059688</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Earth is the strangest planet : ten stories of...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1977</td>\n",
       "      <td>Fiction</td>\n",
       "      <td>Science fiction, American|Science fiction, Eng...</td>\n",
       "      <td>1</td>\n",
       "      <td>Subj: SF, Other B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>uc1.32106018627064</td>\n",
       "      <td>Woodrell, Daniel</td>\n",
       "      <td>Give us a kiss : a country noir</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1998</td>\n",
       "      <td>Humorous stories|Fiction</td>\n",
       "      <td>Ozark Mountains Region|Fiction|Country life</td>\n",
       "      <td>1</td>\n",
       "      <td>Humor B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>njp.32101068608098</td>\n",
       "      <td>Blasco Ibáñez, Vicente</td>\n",
       "      <td>Sónnica</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1918</td>\n",
       "      <td>Fiction|NotFiction</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5</td>\n",
       "      <td>randomA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>uiuo.ark+=13960=t9d517v44</td>\n",
       "      <td>NaN</td>\n",
       "      <td>The rajah's heir</td>\n",
       "      <td>v.3</td>\n",
       "      <td>1890</td>\n",
       "      <td>NaN</td>\n",
       "      <td>823R137</td>\n",
       "      <td>1</td>\n",
       "      <td>randomA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>mdp.39015031242194</td>\n",
       "      <td>Haggard, H. Rider (Henry Rider)</td>\n",
       "      <td>Allan's wife, and other tales</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1889</td>\n",
       "      <td>Adventure fiction|NotFiction|Short stories</td>\n",
       "      <td>Quatermain, Allan (Fictitious character)|Ficti...</td>\n",
       "      <td>2</td>\n",
       "      <td>Adventure-Not-Western</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       docid                           author  \\\n",
       "0         uc1.32106002059688                              NaN   \n",
       "1         uc1.32106018627064                 Woodrell, Daniel   \n",
       "2         njp.32101068608098           Blasco Ibáñez, Vicente   \n",
       "3  uiuo.ark+=13960=t9d517v44                              NaN   \n",
       "4         mdp.39015031242194  Haggard, H. Rider (Henry Rider)   \n",
       "\n",
       "                                          shorttitle enumcron  firstpub  \\\n",
       "0  Earth is the strangest planet : ten stories of...      NaN      1977   \n",
       "1                    Give us a kiss : a country noir      NaN      1998   \n",
       "2                                            Sónnica      NaN      1918   \n",
       "3                                   The rajah's heir      v.3      1890   \n",
       "4                      Allan's wife, and other tales      NaN      1889   \n",
       "\n",
       "                                       genres  \\\n",
       "0                                     Fiction   \n",
       "1                    Humorous stories|Fiction   \n",
       "2                          Fiction|NotFiction   \n",
       "3                                         NaN   \n",
       "4  Adventure fiction|NotFiction|Short stories   \n",
       "\n",
       "                                            subjects  allcopiesofwork  \\\n",
       "0  Science fiction, American|Science fiction, Eng...                1   \n",
       "1        Ozark Mountains Region|Fiction|Country life                1   \n",
       "2                                                NaN                5   \n",
       "3                                            823R137                1   \n",
       "4  Quatermain, Allan (Fictitious character)|Ficti...                2   \n",
       "\n",
       "                    tags  \n",
       "0      Subj: SF, Other B  \n",
       "1                Humor B  \n",
       "2                randomA  \n",
       "3                randomA  \n",
       "4  Adventure-Not-Western  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta = pd.read_csv('../metadata/genremeta.csv')\n",
    "meta.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>90</th>\n",
       "      <th>91</th>\n",
       "      <th>92</th>\n",
       "      <th>93</th>\n",
       "      <th>94</th>\n",
       "      <th>95</th>\n",
       "      <th>96</th>\n",
       "      <th>97</th>\n",
       "      <th>98</th>\n",
       "      <th>99</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>docid</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>pst.000045055782</th>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>1.537166e-03</td>\n",
       "      <td>6.744028e-04</td>\n",
       "      <td>2.314226e-07</td>\n",
       "      <td>2.314226e-07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pst.000022189158</th>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.969856e-02</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "      <td>3.660188e-07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>uc1.b4951688</th>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.261535e-04</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>2.428684e-02</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "      <td>6.450781e-07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>nyp.33433042850168</th>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>5.440246e-02</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>6.123931e-04</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>...</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>2.008461e-03</td>\n",
       "      <td>1.680108e-06</td>\n",
       "      <td>1.680108e-06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>uc1.$b101948</th>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>7.511246e-02</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>5.533059e-04</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>6.330680e-03</td>\n",
       "      <td>...</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>1.206176e-02</td>\n",
       "      <td>4.402377e-07</td>\n",
       "      <td>4.402377e-07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 100 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                               0             1             2             3  \\\n",
       "docid                                                                        \n",
       "pst.000045055782    2.314226e-07  2.314226e-07  2.314226e-07  2.314226e-07   \n",
       "pst.000022189158    3.660188e-07  3.660188e-07  3.660188e-07  3.660188e-07   \n",
       "uc1.b4951688        6.450781e-07  6.450781e-07  6.450781e-07  6.450781e-07   \n",
       "nyp.33433042850168  1.680108e-06  1.680108e-06  1.680108e-06  1.680108e-06   \n",
       "uc1.$b101948        4.402377e-07  4.402377e-07  4.402377e-07  4.402377e-07   \n",
       "\n",
       "                               4             5             6             7  \\\n",
       "docid                                                                        \n",
       "pst.000045055782    2.314226e-07  2.314226e-07  2.314226e-07  2.314226e-07   \n",
       "pst.000022189158    3.660188e-07  3.660188e-07  3.660188e-07  3.660188e-07   \n",
       "uc1.b4951688        6.450781e-07  6.450781e-07  6.450781e-07  6.261535e-04   \n",
       "nyp.33433042850168  1.680108e-06  5.440246e-02  1.680108e-06  6.123931e-04   \n",
       "uc1.$b101948        4.402377e-07  7.511246e-02  4.402377e-07  5.533059e-04   \n",
       "\n",
       "                               8             9      ...                 90  \\\n",
       "docid                                               ...                      \n",
       "pst.000045055782    2.314226e-07  2.314226e-07      ...       2.314226e-07   \n",
       "pst.000022189158    3.660188e-07  3.660188e-07      ...       3.660188e-07   \n",
       "uc1.b4951688        6.450781e-07  6.450781e-07      ...       6.450781e-07   \n",
       "nyp.33433042850168  1.680108e-06  1.680108e-06      ...       1.680108e-06   \n",
       "uc1.$b101948        4.402377e-07  6.330680e-03      ...       4.402377e-07   \n",
       "\n",
       "                              91            92            93            94  \\\n",
       "docid                                                                        \n",
       "pst.000045055782    2.314226e-07  2.314226e-07  2.314226e-07  2.314226e-07   \n",
       "pst.000022189158    3.969856e-02  3.660188e-07  3.660188e-07  3.660188e-07   \n",
       "uc1.b4951688        6.450781e-07  2.428684e-02  6.450781e-07  6.450781e-07   \n",
       "nyp.33433042850168  1.680108e-06  1.680108e-06  1.680108e-06  1.680108e-06   \n",
       "uc1.$b101948        4.402377e-07  4.402377e-07  4.402377e-07  4.402377e-07   \n",
       "\n",
       "                              95            96            97            98  \\\n",
       "docid                                                                        \n",
       "pst.000045055782    2.314226e-07  1.537166e-03  6.744028e-04  2.314226e-07   \n",
       "pst.000022189158    3.660188e-07  3.660188e-07  3.660188e-07  3.660188e-07   \n",
       "uc1.b4951688        6.450781e-07  6.450781e-07  6.450781e-07  6.450781e-07   \n",
       "nyp.33433042850168  1.680108e-06  1.680108e-06  2.008461e-03  1.680108e-06   \n",
       "uc1.$b101948        4.402377e-07  4.402377e-07  1.206176e-02  4.402377e-07   \n",
       "\n",
       "                              99  \n",
       "docid                             \n",
       "pst.000045055782    2.314226e-07  \n",
       "pst.000022189158    3.660188e-07  \n",
       "uc1.b4951688        6.450781e-07  \n",
       "nyp.33433042850168  1.680108e-06  \n",
       "uc1.$b101948        4.402377e-07  \n",
       "\n",
       "[5 rows x 100 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lda = pd.read_csv('../lda/doc_topic_distribution.csv', index_col = 'docid')\n",
    "lda.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create topic vectors \n",
    "\n",
    "for each genre. \n",
    "\n",
    "This would be very simple except that we want to be able to ensure non-overlapping comparisons, to prove that the comparison of social and textual similarity isn't circular. That's the reason for the cumbersome \"exception\" and \"supplement\" mechanics below.\n",
    "\n",
    "Basically, the effect is to create a dictionary, ```topic_vectors,``` where the top level of keys is a genre (```g1```), and the next level of keys is the genre-to-which-it-is-to-be-compared (```g2```)! The value stored there is a topic vector summed over appropriate examples of ```g1```. For instance, if ```g1``` is \"Historical fiction\" and ```g2``` is \"Psychological fiction,\" ```topic_vectors[g1][g2]``` will contain a topic vector summed over examples of historical fiction that are *not* also tagged psychological."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Subj: Man-woman\n",
      "Subj: SF, Other\n",
      "Biographical\n",
      "Suspense\n",
      "Fantasy\n",
      "Adventure\n",
      "Humor\n",
      "SF\n",
      "Historical\n",
      "Subj: Detective\n",
      "Domestic\n",
      "Horror\n",
      "Christian\n",
      "Juvenile\n",
      "Western\n",
      "Subj: Juvenile\n",
      "Political\n",
      "Short stories\n",
      "Bildungsroman\n",
      "Love\n",
      "Subj: Horror\n",
      "War\n",
      "Mystery\n",
      "Novel\n",
      "Psychological\n",
      "Subj: Humor\n",
      "Subj: Fairy tales\n",
      "Subj: Short stories, American\n",
      "Subj: History\n",
      "Subj: Short stories, Other\n",
      "Subj: SF, American\n",
      "Subj: Fantasy\n",
      "randomA\n",
      "randomB\n",
      "Humor B\n",
      "Subj: SF, American B\n",
      "Subj: Short stories, American B\n",
      "Subj: Humor B\n",
      "Novel B\n",
      "SF B\n",
      "Short stories B\n",
      "Subj: Fantasy B\n",
      "Juvenile B\n",
      "Fantasy B\n",
      "Bildungsroman B\n",
      "Historical B\n",
      "Subj: Fairy tales B\n",
      "Subj: Detective B\n",
      "Domestic B\n",
      "Mystery B\n",
      "Subj: Horror B\n",
      "Subj: SF, Other B\n",
      "Subj: Short stories, Other B\n",
      "Subj: Man-woman B\n",
      "Love B\n",
      "Subj: History B\n",
      "Suspense B\n",
      "Subj: Juvenile B\n",
      "Psychological B\n"
     ]
    }
   ],
   "source": [
    "errors = set()\n",
    "\n",
    "def has_genre(row, genre):\n",
    "    tag = row.tags\n",
    "    if pd.isnull(tag):\n",
    "        return None\n",
    "    \n",
    "    tags = tag.split('|')\n",
    "    if genre in tags:\n",
    "        return row.docid\n",
    "    else:\n",
    "        return None\n",
    "    \n",
    "def sum_genre_except(meta, thisgenre, notthisgenre, lda):\n",
    "    ''' Sums volumes that have thisgenre but \n",
    "    not notthisgenre.\n",
    "    '''\n",
    "    global errors\n",
    "    thesedocs = meta.apply(has_genre, args = ([thisgenre]), axis = 1)\n",
    "    \n",
    "    if notthisgenre == 'self':\n",
    "        notthesedocs = set()\n",
    "    else:\n",
    "        notthesedocs = meta.apply(has_genre, args = ([notthisgenre]), axis = 1)\n",
    "    \n",
    "    supplement_name = thisgenre + '-Not-' + notthisgenre\n",
    "    supplementdocs = meta.apply(has_genre, args = ([supplement_name]), axis = 1)\n",
    "    \n",
    "    difference = set(thesedocs) - set(notthesedocs)\n",
    "    genredocs = difference.union(set(supplementdocs))\n",
    "    genredocs.remove(None)\n",
    "    \n",
    "    vector = np.zeros(100)\n",
    "    count = 0\n",
    "    for g in genredocs:\n",
    "        if g in lda.index:\n",
    "            vector = vector + lda.loc[g, : ]\n",
    "            count += 1\n",
    "        else:\n",
    "            errors.add(g)\n",
    "            \n",
    "    if count > 0:\n",
    "        return vector / count\n",
    "    else:\n",
    "        print('zero count', len(errors), len(genredocs))\n",
    "        return float('nan')\n",
    "\n",
    "topic_vectors = dict()\n",
    "\n",
    "for g1 in genrenames:\n",
    "    print(g1)\n",
    "    topic_vectors[g1] = dict()\n",
    "    for g2 in genrenames:\n",
    "        intersected = g1 + '-Not-' + g2\n",
    "        \n",
    "        if g1 == g2:\n",
    "            g2 = 'self'\n",
    "        elif intersected not in intersection_genres:\n",
    "            continue\n",
    "            \n",
    "        if g2.endswith(' B'):\n",
    "            continue\n",
    "        tvec = sum_genre_except(meta, g1, g2, lda)\n",
    "        if np.isnan(np.sum(tvec)):\n",
    "            print('error', g1, g2)\n",
    "        topic_vectors[g1][g2] = tvec\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cosine distances on the vectors, without genre overlap\n",
    "\n",
    "We're going to calculate cosine distances in two ways:\n",
    "\n",
    "1. Vectors where genres are allowed to overlap. I.e., members of g1 can also be members of g2.\n",
    "\n",
    "2. Vectors where g2 is excluded from g1 when the two are being compared.\n",
    "\n",
    "We'll start with the latter.\n",
    "\n",
    "Note that some genres have no intersection in our dataset. In this case, both genres can be compared to the raw topic vector for g1, where g2 has the value 'self.'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "sansoverlaps = dict()\n",
    "\n",
    "for g1 in genrenames:\n",
    "    if g1.startswith('random') or g1.endswith(' B'):\n",
    "        continue\n",
    "        \n",
    "        # We don't have social ground truth about the random sets\n",
    "        # and the B genres are only there as self-comparisons, not in\n",
    "        # their own right.\n",
    "        \n",
    "    sansoverlaps[g1] = dict()\n",
    "    \n",
    "    for g2 in genrenames:\n",
    "        intersected = g1 + '-Not-' + g2\n",
    "        \n",
    "        if g2.startswith('random') or g2.endswith(' B'):\n",
    "            continue\n",
    "        elif g1 == g2:\n",
    "            actualg2 = g1 + ' B'\n",
    "            if actualg2 not in genrenames:\n",
    "                sansoverlaps[g1][g2] = float('nan')\n",
    "                continue\n",
    "            else:\n",
    "                selfcomparison = spatial.distance.cosine(topic_vectors[g1]['self'], topic_vectors[actualg2]['self'])\n",
    "                sansoverlaps[g1][g2] = selfcomparison\n",
    "        \n",
    "        elif intersected not in intersection_genres:\n",
    "            straightforward = spatial.distance.cosine(topic_vectors[g1]['self'], topic_vectors[g2]['self'])\n",
    "            sansoverlaps[g1][g2] = straightforward\n",
    "        \n",
    "        else:\n",
    "            sansoverlaps[g1][g2] = spatial.distance.cosine(topic_vectors[g1][g2], topic_vectors[g2][g1])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### make that a dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Adventure</th>\n",
       "      <th>Bildungsroman</th>\n",
       "      <th>Biographical</th>\n",
       "      <th>Christian</th>\n",
       "      <th>Domestic</th>\n",
       "      <th>Fantasy</th>\n",
       "      <th>Historical</th>\n",
       "      <th>Horror</th>\n",
       "      <th>Humor</th>\n",
       "      <th>Juvenile</th>\n",
       "      <th>...</th>\n",
       "      <th>Subj: Humor</th>\n",
       "      <th>Subj: Juvenile</th>\n",
       "      <th>Subj: Man-woman</th>\n",
       "      <th>Subj: SF, American</th>\n",
       "      <th>Subj: SF, Other</th>\n",
       "      <th>Subj: Short stories, American</th>\n",
       "      <th>Subj: Short stories, Other</th>\n",
       "      <th>Suspense</th>\n",
       "      <th>War</th>\n",
       "      <th>Western</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Adventure</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.242510</td>\n",
       "      <td>0.264075</td>\n",
       "      <td>0.269559</td>\n",
       "      <td>0.288468</td>\n",
       "      <td>0.236151</td>\n",
       "      <td>0.211755</td>\n",
       "      <td>0.137807</td>\n",
       "      <td>0.235557</td>\n",
       "      <td>0.554802</td>\n",
       "      <td>...</td>\n",
       "      <td>0.458997</td>\n",
       "      <td>0.490340</td>\n",
       "      <td>0.293141</td>\n",
       "      <td>0.353699</td>\n",
       "      <td>0.404589</td>\n",
       "      <td>0.207870</td>\n",
       "      <td>0.337010</td>\n",
       "      <td>0.115638</td>\n",
       "      <td>0.229229</td>\n",
       "      <td>0.397866</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bildungsroman</th>\n",
       "      <td>0.242510</td>\n",
       "      <td>0.018266</td>\n",
       "      <td>0.244011</td>\n",
       "      <td>0.214107</td>\n",
       "      <td>0.023559</td>\n",
       "      <td>0.395861</td>\n",
       "      <td>0.251382</td>\n",
       "      <td>0.218844</td>\n",
       "      <td>0.129672</td>\n",
       "      <td>0.574530</td>\n",
       "      <td>...</td>\n",
       "      <td>0.463543</td>\n",
       "      <td>0.481658</td>\n",
       "      <td>0.083532</td>\n",
       "      <td>0.517385</td>\n",
       "      <td>0.603264</td>\n",
       "      <td>0.056788</td>\n",
       "      <td>0.234800</td>\n",
       "      <td>0.263806</td>\n",
       "      <td>0.425919</td>\n",
       "      <td>0.522048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Biographical</th>\n",
       "      <td>0.264075</td>\n",
       "      <td>0.244011</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.162681</td>\n",
       "      <td>0.313741</td>\n",
       "      <td>0.151726</td>\n",
       "      <td>0.032452</td>\n",
       "      <td>0.269831</td>\n",
       "      <td>0.326728</td>\n",
       "      <td>0.437317</td>\n",
       "      <td>...</td>\n",
       "      <td>0.457251</td>\n",
       "      <td>0.414279</td>\n",
       "      <td>0.270289</td>\n",
       "      <td>0.498245</td>\n",
       "      <td>0.550649</td>\n",
       "      <td>0.236074</td>\n",
       "      <td>0.164126</td>\n",
       "      <td>0.424048</td>\n",
       "      <td>0.287602</td>\n",
       "      <td>0.443693</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Christian</th>\n",
       "      <td>0.269559</td>\n",
       "      <td>0.214107</td>\n",
       "      <td>0.162681</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.292262</td>\n",
       "      <td>0.278193</td>\n",
       "      <td>0.123627</td>\n",
       "      <td>0.264677</td>\n",
       "      <td>0.255881</td>\n",
       "      <td>0.411899</td>\n",
       "      <td>...</td>\n",
       "      <td>0.431184</td>\n",
       "      <td>0.414697</td>\n",
       "      <td>0.158216</td>\n",
       "      <td>0.549132</td>\n",
       "      <td>0.591069</td>\n",
       "      <td>0.238174</td>\n",
       "      <td>0.356537</td>\n",
       "      <td>0.305192</td>\n",
       "      <td>0.389795</td>\n",
       "      <td>0.482500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Domestic</th>\n",
       "      <td>0.288468</td>\n",
       "      <td>0.023559</td>\n",
       "      <td>0.313741</td>\n",
       "      <td>0.292262</td>\n",
       "      <td>0.011518</td>\n",
       "      <td>0.472698</td>\n",
       "      <td>0.319074</td>\n",
       "      <td>0.274015</td>\n",
       "      <td>0.141512</td>\n",
       "      <td>0.716054</td>\n",
       "      <td>...</td>\n",
       "      <td>0.575584</td>\n",
       "      <td>0.584091</td>\n",
       "      <td>0.107064</td>\n",
       "      <td>0.548539</td>\n",
       "      <td>0.636083</td>\n",
       "      <td>0.109499</td>\n",
       "      <td>0.287097</td>\n",
       "      <td>0.227193</td>\n",
       "      <td>0.473333</td>\n",
       "      <td>0.554101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fantasy</th>\n",
       "      <td>0.236151</td>\n",
       "      <td>0.395861</td>\n",
       "      <td>0.151726</td>\n",
       "      <td>0.278193</td>\n",
       "      <td>0.472698</td>\n",
       "      <td>0.008561</td>\n",
       "      <td>0.133928</td>\n",
       "      <td>0.132113</td>\n",
       "      <td>0.442504</td>\n",
       "      <td>0.569797</td>\n",
       "      <td>...</td>\n",
       "      <td>0.607950</td>\n",
       "      <td>0.527034</td>\n",
       "      <td>0.411482</td>\n",
       "      <td>0.333588</td>\n",
       "      <td>0.383953</td>\n",
       "      <td>0.351549</td>\n",
       "      <td>0.387953</td>\n",
       "      <td>0.412226</td>\n",
       "      <td>0.383082</td>\n",
       "      <td>0.405356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Historical</th>\n",
       "      <td>0.211755</td>\n",
       "      <td>0.251382</td>\n",
       "      <td>0.032452</td>\n",
       "      <td>0.123627</td>\n",
       "      <td>0.319074</td>\n",
       "      <td>0.133928</td>\n",
       "      <td>0.021335</td>\n",
       "      <td>0.234327</td>\n",
       "      <td>0.350106</td>\n",
       "      <td>0.354764</td>\n",
       "      <td>...</td>\n",
       "      <td>0.425803</td>\n",
       "      <td>0.330589</td>\n",
       "      <td>0.270950</td>\n",
       "      <td>0.482939</td>\n",
       "      <td>0.526918</td>\n",
       "      <td>0.213276</td>\n",
       "      <td>0.214752</td>\n",
       "      <td>0.364295</td>\n",
       "      <td>0.258828</td>\n",
       "      <td>0.293159</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Horror</th>\n",
       "      <td>0.137807</td>\n",
       "      <td>0.218844</td>\n",
       "      <td>0.269831</td>\n",
       "      <td>0.264677</td>\n",
       "      <td>0.274015</td>\n",
       "      <td>0.132113</td>\n",
       "      <td>0.234327</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.238026</td>\n",
       "      <td>0.614025</td>\n",
       "      <td>...</td>\n",
       "      <td>0.526124</td>\n",
       "      <td>0.575462</td>\n",
       "      <td>0.225115</td>\n",
       "      <td>0.345467</td>\n",
       "      <td>0.402339</td>\n",
       "      <td>0.204503</td>\n",
       "      <td>0.344361</td>\n",
       "      <td>0.220743</td>\n",
       "      <td>0.381992</td>\n",
       "      <td>0.458642</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Humor</th>\n",
       "      <td>0.235557</td>\n",
       "      <td>0.129672</td>\n",
       "      <td>0.326728</td>\n",
       "      <td>0.255881</td>\n",
       "      <td>0.141512</td>\n",
       "      <td>0.442504</td>\n",
       "      <td>0.350106</td>\n",
       "      <td>0.238026</td>\n",
       "      <td>0.007469</td>\n",
       "      <td>0.679743</td>\n",
       "      <td>...</td>\n",
       "      <td>0.362184</td>\n",
       "      <td>0.634977</td>\n",
       "      <td>0.093717</td>\n",
       "      <td>0.504867</td>\n",
       "      <td>0.575267</td>\n",
       "      <td>0.192149</td>\n",
       "      <td>0.319037</td>\n",
       "      <td>0.209047</td>\n",
       "      <td>0.474752</td>\n",
       "      <td>0.611160</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Juvenile</th>\n",
       "      <td>0.554802</td>\n",
       "      <td>0.574530</td>\n",
       "      <td>0.437317</td>\n",
       "      <td>0.411899</td>\n",
       "      <td>0.716054</td>\n",
       "      <td>0.569797</td>\n",
       "      <td>0.354764</td>\n",
       "      <td>0.614025</td>\n",
       "      <td>0.679743</td>\n",
       "      <td>0.047641</td>\n",
       "      <td>...</td>\n",
       "      <td>0.285322</td>\n",
       "      <td>0.063083</td>\n",
       "      <td>0.580487</td>\n",
       "      <td>0.765662</td>\n",
       "      <td>0.744469</td>\n",
       "      <td>0.442398</td>\n",
       "      <td>0.449006</td>\n",
       "      <td>0.784038</td>\n",
       "      <td>0.393613</td>\n",
       "      <td>0.494705</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Love</th>\n",
       "      <td>0.215829</td>\n",
       "      <td>0.051517</td>\n",
       "      <td>0.238234</td>\n",
       "      <td>0.157725</td>\n",
       "      <td>0.063244</td>\n",
       "      <td>0.369408</td>\n",
       "      <td>0.234863</td>\n",
       "      <td>0.188038</td>\n",
       "      <td>0.081834</td>\n",
       "      <td>0.587296</td>\n",
       "      <td>...</td>\n",
       "      <td>0.484096</td>\n",
       "      <td>0.524795</td>\n",
       "      <td>0.014370</td>\n",
       "      <td>0.525186</td>\n",
       "      <td>0.595271</td>\n",
       "      <td>0.120800</td>\n",
       "      <td>0.237452</td>\n",
       "      <td>0.175530</td>\n",
       "      <td>0.411591</td>\n",
       "      <td>0.507870</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mystery</th>\n",
       "      <td>0.267321</td>\n",
       "      <td>0.302780</td>\n",
       "      <td>0.471654</td>\n",
       "      <td>0.299231</td>\n",
       "      <td>0.264093</td>\n",
       "      <td>0.479129</td>\n",
       "      <td>0.378274</td>\n",
       "      <td>0.276742</td>\n",
       "      <td>0.251382</td>\n",
       "      <td>0.679824</td>\n",
       "      <td>...</td>\n",
       "      <td>0.493707</td>\n",
       "      <td>0.633864</td>\n",
       "      <td>0.217626</td>\n",
       "      <td>0.559048</td>\n",
       "      <td>0.581436</td>\n",
       "      <td>0.301230</td>\n",
       "      <td>0.476156</td>\n",
       "      <td>0.091146</td>\n",
       "      <td>0.477566</td>\n",
       "      <td>0.552993</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Novel</th>\n",
       "      <td>0.144237</td>\n",
       "      <td>0.139266</td>\n",
       "      <td>0.119431</td>\n",
       "      <td>0.120239</td>\n",
       "      <td>0.187329</td>\n",
       "      <td>0.222263</td>\n",
       "      <td>0.115083</td>\n",
       "      <td>0.134041</td>\n",
       "      <td>0.120817</td>\n",
       "      <td>0.474543</td>\n",
       "      <td>...</td>\n",
       "      <td>0.350883</td>\n",
       "      <td>0.461137</td>\n",
       "      <td>0.084601</td>\n",
       "      <td>0.419856</td>\n",
       "      <td>0.466292</td>\n",
       "      <td>0.134760</td>\n",
       "      <td>0.153723</td>\n",
       "      <td>0.192682</td>\n",
       "      <td>0.292006</td>\n",
       "      <td>0.460582</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Political</th>\n",
       "      <td>0.183834</td>\n",
       "      <td>0.290268</td>\n",
       "      <td>0.282651</td>\n",
       "      <td>0.257774</td>\n",
       "      <td>0.303735</td>\n",
       "      <td>0.431614</td>\n",
       "      <td>0.311023</td>\n",
       "      <td>0.332482</td>\n",
       "      <td>0.155333</td>\n",
       "      <td>0.691145</td>\n",
       "      <td>...</td>\n",
       "      <td>0.434833</td>\n",
       "      <td>0.676822</td>\n",
       "      <td>0.223071</td>\n",
       "      <td>0.555919</td>\n",
       "      <td>0.595001</td>\n",
       "      <td>0.313517</td>\n",
       "      <td>0.336636</td>\n",
       "      <td>0.171695</td>\n",
       "      <td>0.343339</td>\n",
       "      <td>0.635047</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Psychological</th>\n",
       "      <td>0.229005</td>\n",
       "      <td>0.054127</td>\n",
       "      <td>0.311998</td>\n",
       "      <td>0.255139</td>\n",
       "      <td>0.039181</td>\n",
       "      <td>0.429358</td>\n",
       "      <td>0.316938</td>\n",
       "      <td>0.197925</td>\n",
       "      <td>0.059385</td>\n",
       "      <td>0.721850</td>\n",
       "      <td>...</td>\n",
       "      <td>0.522626</td>\n",
       "      <td>0.627119</td>\n",
       "      <td>0.060566</td>\n",
       "      <td>0.497222</td>\n",
       "      <td>0.572098</td>\n",
       "      <td>0.131778</td>\n",
       "      <td>0.285306</td>\n",
       "      <td>0.155095</td>\n",
       "      <td>0.447285</td>\n",
       "      <td>0.556617</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SF</th>\n",
       "      <td>0.257704</td>\n",
       "      <td>0.526782</td>\n",
       "      <td>0.458230</td>\n",
       "      <td>0.499645</td>\n",
       "      <td>0.556327</td>\n",
       "      <td>0.306869</td>\n",
       "      <td>0.438812</td>\n",
       "      <td>0.310162</td>\n",
       "      <td>0.460853</td>\n",
       "      <td>0.765409</td>\n",
       "      <td>...</td>\n",
       "      <td>0.655510</td>\n",
       "      <td>0.712547</td>\n",
       "      <td>0.512326</td>\n",
       "      <td>0.033283</td>\n",
       "      <td>0.040291</td>\n",
       "      <td>0.462701</td>\n",
       "      <td>0.543565</td>\n",
       "      <td>0.385281</td>\n",
       "      <td>0.460904</td>\n",
       "      <td>0.619393</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Short stories</th>\n",
       "      <td>0.184959</td>\n",
       "      <td>0.075284</td>\n",
       "      <td>0.142078</td>\n",
       "      <td>0.236368</td>\n",
       "      <td>0.122013</td>\n",
       "      <td>0.245774</td>\n",
       "      <td>0.165213</td>\n",
       "      <td>0.145447</td>\n",
       "      <td>0.149198</td>\n",
       "      <td>0.498051</td>\n",
       "      <td>...</td>\n",
       "      <td>0.393083</td>\n",
       "      <td>0.427847</td>\n",
       "      <td>0.133403</td>\n",
       "      <td>0.433195</td>\n",
       "      <td>0.486580</td>\n",
       "      <td>0.061028</td>\n",
       "      <td>0.092071</td>\n",
       "      <td>0.283967</td>\n",
       "      <td>0.346206</td>\n",
       "      <td>0.458005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Detective</th>\n",
       "      <td>0.338725</td>\n",
       "      <td>0.373855</td>\n",
       "      <td>0.507089</td>\n",
       "      <td>0.346209</td>\n",
       "      <td>0.367199</td>\n",
       "      <td>0.506302</td>\n",
       "      <td>0.401336</td>\n",
       "      <td>0.320336</td>\n",
       "      <td>0.334314</td>\n",
       "      <td>0.548223</td>\n",
       "      <td>...</td>\n",
       "      <td>0.386516</td>\n",
       "      <td>0.563740</td>\n",
       "      <td>0.291441</td>\n",
       "      <td>0.585946</td>\n",
       "      <td>0.587753</td>\n",
       "      <td>0.306963</td>\n",
       "      <td>0.456753</td>\n",
       "      <td>0.200179</td>\n",
       "      <td>0.511908</td>\n",
       "      <td>0.559724</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Fairy tales</th>\n",
       "      <td>0.841187</td>\n",
       "      <td>0.857988</td>\n",
       "      <td>0.776603</td>\n",
       "      <td>0.812551</td>\n",
       "      <td>0.914251</td>\n",
       "      <td>0.755549</td>\n",
       "      <td>0.778103</td>\n",
       "      <td>0.838016</td>\n",
       "      <td>0.898516</td>\n",
       "      <td>0.495150</td>\n",
       "      <td>...</td>\n",
       "      <td>0.793344</td>\n",
       "      <td>0.380913</td>\n",
       "      <td>0.887640</td>\n",
       "      <td>0.895691</td>\n",
       "      <td>0.889060</td>\n",
       "      <td>0.830778</td>\n",
       "      <td>0.760717</td>\n",
       "      <td>0.934237</td>\n",
       "      <td>0.859850</td>\n",
       "      <td>0.881942</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Fantasy</th>\n",
       "      <td>0.200439</td>\n",
       "      <td>0.284177</td>\n",
       "      <td>0.235990</td>\n",
       "      <td>0.288805</td>\n",
       "      <td>0.368746</td>\n",
       "      <td>0.098824</td>\n",
       "      <td>0.208058</td>\n",
       "      <td>0.090595</td>\n",
       "      <td>0.355350</td>\n",
       "      <td>0.451206</td>\n",
       "      <td>...</td>\n",
       "      <td>0.476541</td>\n",
       "      <td>0.388502</td>\n",
       "      <td>0.343093</td>\n",
       "      <td>0.264894</td>\n",
       "      <td>0.293262</td>\n",
       "      <td>0.186342</td>\n",
       "      <td>0.306997</td>\n",
       "      <td>0.383206</td>\n",
       "      <td>0.387575</td>\n",
       "      <td>0.434119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: History</th>\n",
       "      <td>0.416123</td>\n",
       "      <td>0.533086</td>\n",
       "      <td>0.273438</td>\n",
       "      <td>0.328970</td>\n",
       "      <td>0.647541</td>\n",
       "      <td>0.398244</td>\n",
       "      <td>0.226630</td>\n",
       "      <td>0.479005</td>\n",
       "      <td>0.612750</td>\n",
       "      <td>0.186701</td>\n",
       "      <td>...</td>\n",
       "      <td>0.420043</td>\n",
       "      <td>0.280185</td>\n",
       "      <td>0.555887</td>\n",
       "      <td>0.673623</td>\n",
       "      <td>0.664257</td>\n",
       "      <td>0.452634</td>\n",
       "      <td>0.398114</td>\n",
       "      <td>0.659533</td>\n",
       "      <td>0.198362</td>\n",
       "      <td>0.517190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Horror</th>\n",
       "      <td>0.284775</td>\n",
       "      <td>0.360022</td>\n",
       "      <td>0.345457</td>\n",
       "      <td>0.355280</td>\n",
       "      <td>0.466544</td>\n",
       "      <td>0.243262</td>\n",
       "      <td>0.300486</td>\n",
       "      <td>0.157496</td>\n",
       "      <td>0.442463</td>\n",
       "      <td>0.421674</td>\n",
       "      <td>...</td>\n",
       "      <td>0.446464</td>\n",
       "      <td>0.453734</td>\n",
       "      <td>0.371221</td>\n",
       "      <td>0.393350</td>\n",
       "      <td>0.398407</td>\n",
       "      <td>0.207324</td>\n",
       "      <td>0.302688</td>\n",
       "      <td>0.458449</td>\n",
       "      <td>0.431080</td>\n",
       "      <td>0.466548</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Humor</th>\n",
       "      <td>0.458997</td>\n",
       "      <td>0.463543</td>\n",
       "      <td>0.457251</td>\n",
       "      <td>0.431184</td>\n",
       "      <td>0.575584</td>\n",
       "      <td>0.607950</td>\n",
       "      <td>0.425803</td>\n",
       "      <td>0.526124</td>\n",
       "      <td>0.362184</td>\n",
       "      <td>0.285322</td>\n",
       "      <td>...</td>\n",
       "      <td>0.015612</td>\n",
       "      <td>0.387291</td>\n",
       "      <td>0.467973</td>\n",
       "      <td>0.678620</td>\n",
       "      <td>0.698658</td>\n",
       "      <td>0.345012</td>\n",
       "      <td>0.410243</td>\n",
       "      <td>0.607409</td>\n",
       "      <td>0.541691</td>\n",
       "      <td>0.597331</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Juvenile</th>\n",
       "      <td>0.490340</td>\n",
       "      <td>0.481658</td>\n",
       "      <td>0.414279</td>\n",
       "      <td>0.414697</td>\n",
       "      <td>0.584091</td>\n",
       "      <td>0.527034</td>\n",
       "      <td>0.330589</td>\n",
       "      <td>0.575462</td>\n",
       "      <td>0.634977</td>\n",
       "      <td>0.063083</td>\n",
       "      <td>...</td>\n",
       "      <td>0.387291</td>\n",
       "      <td>0.009033</td>\n",
       "      <td>0.551980</td>\n",
       "      <td>0.696180</td>\n",
       "      <td>0.709566</td>\n",
       "      <td>0.378784</td>\n",
       "      <td>0.441901</td>\n",
       "      <td>0.700271</td>\n",
       "      <td>0.397538</td>\n",
       "      <td>0.399995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Man-woman</th>\n",
       "      <td>0.293141</td>\n",
       "      <td>0.083532</td>\n",
       "      <td>0.270289</td>\n",
       "      <td>0.158216</td>\n",
       "      <td>0.107064</td>\n",
       "      <td>0.411482</td>\n",
       "      <td>0.270950</td>\n",
       "      <td>0.225115</td>\n",
       "      <td>0.093717</td>\n",
       "      <td>0.580487</td>\n",
       "      <td>...</td>\n",
       "      <td>0.467973</td>\n",
       "      <td>0.551980</td>\n",
       "      <td>0.008946</td>\n",
       "      <td>0.542238</td>\n",
       "      <td>0.603350</td>\n",
       "      <td>0.154236</td>\n",
       "      <td>0.267602</td>\n",
       "      <td>0.227118</td>\n",
       "      <td>0.450343</td>\n",
       "      <td>0.566770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: SF, American</th>\n",
       "      <td>0.353699</td>\n",
       "      <td>0.517385</td>\n",
       "      <td>0.498245</td>\n",
       "      <td>0.549132</td>\n",
       "      <td>0.548539</td>\n",
       "      <td>0.333588</td>\n",
       "      <td>0.482939</td>\n",
       "      <td>0.345467</td>\n",
       "      <td>0.504867</td>\n",
       "      <td>0.765662</td>\n",
       "      <td>...</td>\n",
       "      <td>0.678620</td>\n",
       "      <td>0.696180</td>\n",
       "      <td>0.542238</td>\n",
       "      <td>0.008973</td>\n",
       "      <td>0.009474</td>\n",
       "      <td>0.434280</td>\n",
       "      <td>0.559454</td>\n",
       "      <td>0.507068</td>\n",
       "      <td>0.545793</td>\n",
       "      <td>0.614310</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: SF, Other</th>\n",
       "      <td>0.404589</td>\n",
       "      <td>0.603264</td>\n",
       "      <td>0.550649</td>\n",
       "      <td>0.591069</td>\n",
       "      <td>0.636083</td>\n",
       "      <td>0.383953</td>\n",
       "      <td>0.526918</td>\n",
       "      <td>0.402339</td>\n",
       "      <td>0.575267</td>\n",
       "      <td>0.744469</td>\n",
       "      <td>...</td>\n",
       "      <td>0.698658</td>\n",
       "      <td>0.709566</td>\n",
       "      <td>0.603350</td>\n",
       "      <td>0.009474</td>\n",
       "      <td>0.004930</td>\n",
       "      <td>0.510736</td>\n",
       "      <td>0.592366</td>\n",
       "      <td>0.555465</td>\n",
       "      <td>0.561721</td>\n",
       "      <td>0.646122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Short stories, American</th>\n",
       "      <td>0.207870</td>\n",
       "      <td>0.056788</td>\n",
       "      <td>0.236074</td>\n",
       "      <td>0.238174</td>\n",
       "      <td>0.109499</td>\n",
       "      <td>0.351549</td>\n",
       "      <td>0.213276</td>\n",
       "      <td>0.204503</td>\n",
       "      <td>0.192149</td>\n",
       "      <td>0.442398</td>\n",
       "      <td>...</td>\n",
       "      <td>0.345012</td>\n",
       "      <td>0.378784</td>\n",
       "      <td>0.154236</td>\n",
       "      <td>0.434280</td>\n",
       "      <td>0.510736</td>\n",
       "      <td>0.006597</td>\n",
       "      <td>0.191764</td>\n",
       "      <td>0.310424</td>\n",
       "      <td>0.377393</td>\n",
       "      <td>0.406797</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Short stories, Other</th>\n",
       "      <td>0.337010</td>\n",
       "      <td>0.234800</td>\n",
       "      <td>0.164126</td>\n",
       "      <td>0.356537</td>\n",
       "      <td>0.287097</td>\n",
       "      <td>0.387953</td>\n",
       "      <td>0.214752</td>\n",
       "      <td>0.344361</td>\n",
       "      <td>0.319037</td>\n",
       "      <td>0.449006</td>\n",
       "      <td>...</td>\n",
       "      <td>0.410243</td>\n",
       "      <td>0.441901</td>\n",
       "      <td>0.267602</td>\n",
       "      <td>0.559454</td>\n",
       "      <td>0.592366</td>\n",
       "      <td>0.191764</td>\n",
       "      <td>0.008164</td>\n",
       "      <td>0.466334</td>\n",
       "      <td>0.354288</td>\n",
       "      <td>0.524258</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Suspense</th>\n",
       "      <td>0.115638</td>\n",
       "      <td>0.263806</td>\n",
       "      <td>0.424048</td>\n",
       "      <td>0.305192</td>\n",
       "      <td>0.227193</td>\n",
       "      <td>0.412226</td>\n",
       "      <td>0.364295</td>\n",
       "      <td>0.220743</td>\n",
       "      <td>0.209047</td>\n",
       "      <td>0.784038</td>\n",
       "      <td>...</td>\n",
       "      <td>0.607409</td>\n",
       "      <td>0.700271</td>\n",
       "      <td>0.227118</td>\n",
       "      <td>0.507068</td>\n",
       "      <td>0.555465</td>\n",
       "      <td>0.310424</td>\n",
       "      <td>0.466334</td>\n",
       "      <td>0.010804</td>\n",
       "      <td>0.386272</td>\n",
       "      <td>0.565129</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>War</th>\n",
       "      <td>0.229229</td>\n",
       "      <td>0.425919</td>\n",
       "      <td>0.287602</td>\n",
       "      <td>0.389795</td>\n",
       "      <td>0.473333</td>\n",
       "      <td>0.383082</td>\n",
       "      <td>0.258828</td>\n",
       "      <td>0.381992</td>\n",
       "      <td>0.474752</td>\n",
       "      <td>0.393613</td>\n",
       "      <td>...</td>\n",
       "      <td>0.541691</td>\n",
       "      <td>0.397538</td>\n",
       "      <td>0.450343</td>\n",
       "      <td>0.545793</td>\n",
       "      <td>0.561721</td>\n",
       "      <td>0.377393</td>\n",
       "      <td>0.354288</td>\n",
       "      <td>0.386272</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.509350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Western</th>\n",
       "      <td>0.397866</td>\n",
       "      <td>0.522048</td>\n",
       "      <td>0.443693</td>\n",
       "      <td>0.482500</td>\n",
       "      <td>0.554101</td>\n",
       "      <td>0.405356</td>\n",
       "      <td>0.293159</td>\n",
       "      <td>0.458642</td>\n",
       "      <td>0.611160</td>\n",
       "      <td>0.494705</td>\n",
       "      <td>...</td>\n",
       "      <td>0.597331</td>\n",
       "      <td>0.399995</td>\n",
       "      <td>0.566770</td>\n",
       "      <td>0.614310</td>\n",
       "      <td>0.646122</td>\n",
       "      <td>0.406797</td>\n",
       "      <td>0.524258</td>\n",
       "      <td>0.565129</td>\n",
       "      <td>0.509350</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>32 rows × 32 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Adventure  Bildungsroman  Biographical  \\\n",
       "Adventure                            NaN       0.242510      0.264075   \n",
       "Bildungsroman                   0.242510       0.018266      0.244011   \n",
       "Biographical                    0.264075       0.244011           NaN   \n",
       "Christian                       0.269559       0.214107      0.162681   \n",
       "Domestic                        0.288468       0.023559      0.313741   \n",
       "Fantasy                         0.236151       0.395861      0.151726   \n",
       "Historical                      0.211755       0.251382      0.032452   \n",
       "Horror                          0.137807       0.218844      0.269831   \n",
       "Humor                           0.235557       0.129672      0.326728   \n",
       "Juvenile                        0.554802       0.574530      0.437317   \n",
       "Love                            0.215829       0.051517      0.238234   \n",
       "Mystery                         0.267321       0.302780      0.471654   \n",
       "Novel                           0.144237       0.139266      0.119431   \n",
       "Political                       0.183834       0.290268      0.282651   \n",
       "Psychological                   0.229005       0.054127      0.311998   \n",
       "SF                              0.257704       0.526782      0.458230   \n",
       "Short stories                   0.184959       0.075284      0.142078   \n",
       "Subj: Detective                 0.338725       0.373855      0.507089   \n",
       "Subj: Fairy tales               0.841187       0.857988      0.776603   \n",
       "Subj: Fantasy                   0.200439       0.284177      0.235990   \n",
       "Subj: History                   0.416123       0.533086      0.273438   \n",
       "Subj: Horror                    0.284775       0.360022      0.345457   \n",
       "Subj: Humor                     0.458997       0.463543      0.457251   \n",
       "Subj: Juvenile                  0.490340       0.481658      0.414279   \n",
       "Subj: Man-woman                 0.293141       0.083532      0.270289   \n",
       "Subj: SF, American              0.353699       0.517385      0.498245   \n",
       "Subj: SF, Other                 0.404589       0.603264      0.550649   \n",
       "Subj: Short stories, American   0.207870       0.056788      0.236074   \n",
       "Subj: Short stories, Other      0.337010       0.234800      0.164126   \n",
       "Suspense                        0.115638       0.263806      0.424048   \n",
       "War                             0.229229       0.425919      0.287602   \n",
       "Western                         0.397866       0.522048      0.443693   \n",
       "\n",
       "                               Christian  Domestic   Fantasy  Historical  \\\n",
       "Adventure                       0.269559  0.288468  0.236151    0.211755   \n",
       "Bildungsroman                   0.214107  0.023559  0.395861    0.251382   \n",
       "Biographical                    0.162681  0.313741  0.151726    0.032452   \n",
       "Christian                            NaN  0.292262  0.278193    0.123627   \n",
       "Domestic                        0.292262  0.011518  0.472698    0.319074   \n",
       "Fantasy                         0.278193  0.472698  0.008561    0.133928   \n",
       "Historical                      0.123627  0.319074  0.133928    0.021335   \n",
       "Horror                          0.264677  0.274015  0.132113    0.234327   \n",
       "Humor                           0.255881  0.141512  0.442504    0.350106   \n",
       "Juvenile                        0.411899  0.716054  0.569797    0.354764   \n",
       "Love                            0.157725  0.063244  0.369408    0.234863   \n",
       "Mystery                         0.299231  0.264093  0.479129    0.378274   \n",
       "Novel                           0.120239  0.187329  0.222263    0.115083   \n",
       "Political                       0.257774  0.303735  0.431614    0.311023   \n",
       "Psychological                   0.255139  0.039181  0.429358    0.316938   \n",
       "SF                              0.499645  0.556327  0.306869    0.438812   \n",
       "Short stories                   0.236368  0.122013  0.245774    0.165213   \n",
       "Subj: Detective                 0.346209  0.367199  0.506302    0.401336   \n",
       "Subj: Fairy tales               0.812551  0.914251  0.755549    0.778103   \n",
       "Subj: Fantasy                   0.288805  0.368746  0.098824    0.208058   \n",
       "Subj: History                   0.328970  0.647541  0.398244    0.226630   \n",
       "Subj: Horror                    0.355280  0.466544  0.243262    0.300486   \n",
       "Subj: Humor                     0.431184  0.575584  0.607950    0.425803   \n",
       "Subj: Juvenile                  0.414697  0.584091  0.527034    0.330589   \n",
       "Subj: Man-woman                 0.158216  0.107064  0.411482    0.270950   \n",
       "Subj: SF, American              0.549132  0.548539  0.333588    0.482939   \n",
       "Subj: SF, Other                 0.591069  0.636083  0.383953    0.526918   \n",
       "Subj: Short stories, American   0.238174  0.109499  0.351549    0.213276   \n",
       "Subj: Short stories, Other      0.356537  0.287097  0.387953    0.214752   \n",
       "Suspense                        0.305192  0.227193  0.412226    0.364295   \n",
       "War                             0.389795  0.473333  0.383082    0.258828   \n",
       "Western                         0.482500  0.554101  0.405356    0.293159   \n",
       "\n",
       "                                 Horror     Humor  Juvenile    ...     \\\n",
       "Adventure                      0.137807  0.235557  0.554802    ...      \n",
       "Bildungsroman                  0.218844  0.129672  0.574530    ...      \n",
       "Biographical                   0.269831  0.326728  0.437317    ...      \n",
       "Christian                      0.264677  0.255881  0.411899    ...      \n",
       "Domestic                       0.274015  0.141512  0.716054    ...      \n",
       "Fantasy                        0.132113  0.442504  0.569797    ...      \n",
       "Historical                     0.234327  0.350106  0.354764    ...      \n",
       "Horror                              NaN  0.238026  0.614025    ...      \n",
       "Humor                          0.238026  0.007469  0.679743    ...      \n",
       "Juvenile                       0.614025  0.679743  0.047641    ...      \n",
       "Love                           0.188038  0.081834  0.587296    ...      \n",
       "Mystery                        0.276742  0.251382  0.679824    ...      \n",
       "Novel                          0.134041  0.120817  0.474543    ...      \n",
       "Political                      0.332482  0.155333  0.691145    ...      \n",
       "Psychological                  0.197925  0.059385  0.721850    ...      \n",
       "SF                             0.310162  0.460853  0.765409    ...      \n",
       "Short stories                  0.145447  0.149198  0.498051    ...      \n",
       "Subj: Detective                0.320336  0.334314  0.548223    ...      \n",
       "Subj: Fairy tales              0.838016  0.898516  0.495150    ...      \n",
       "Subj: Fantasy                  0.090595  0.355350  0.451206    ...      \n",
       "Subj: History                  0.479005  0.612750  0.186701    ...      \n",
       "Subj: Horror                   0.157496  0.442463  0.421674    ...      \n",
       "Subj: Humor                    0.526124  0.362184  0.285322    ...      \n",
       "Subj: Juvenile                 0.575462  0.634977  0.063083    ...      \n",
       "Subj: Man-woman                0.225115  0.093717  0.580487    ...      \n",
       "Subj: SF, American             0.345467  0.504867  0.765662    ...      \n",
       "Subj: SF, Other                0.402339  0.575267  0.744469    ...      \n",
       "Subj: Short stories, American  0.204503  0.192149  0.442398    ...      \n",
       "Subj: Short stories, Other     0.344361  0.319037  0.449006    ...      \n",
       "Suspense                       0.220743  0.209047  0.784038    ...      \n",
       "War                            0.381992  0.474752  0.393613    ...      \n",
       "Western                        0.458642  0.611160  0.494705    ...      \n",
       "\n",
       "                               Subj: Humor  Subj: Juvenile  Subj: Man-woman  \\\n",
       "Adventure                         0.458997        0.490340         0.293141   \n",
       "Bildungsroman                     0.463543        0.481658         0.083532   \n",
       "Biographical                      0.457251        0.414279         0.270289   \n",
       "Christian                         0.431184        0.414697         0.158216   \n",
       "Domestic                          0.575584        0.584091         0.107064   \n",
       "Fantasy                           0.607950        0.527034         0.411482   \n",
       "Historical                        0.425803        0.330589         0.270950   \n",
       "Horror                            0.526124        0.575462         0.225115   \n",
       "Humor                             0.362184        0.634977         0.093717   \n",
       "Juvenile                          0.285322        0.063083         0.580487   \n",
       "Love                              0.484096        0.524795         0.014370   \n",
       "Mystery                           0.493707        0.633864         0.217626   \n",
       "Novel                             0.350883        0.461137         0.084601   \n",
       "Political                         0.434833        0.676822         0.223071   \n",
       "Psychological                     0.522626        0.627119         0.060566   \n",
       "SF                                0.655510        0.712547         0.512326   \n",
       "Short stories                     0.393083        0.427847         0.133403   \n",
       "Subj: Detective                   0.386516        0.563740         0.291441   \n",
       "Subj: Fairy tales                 0.793344        0.380913         0.887640   \n",
       "Subj: Fantasy                     0.476541        0.388502         0.343093   \n",
       "Subj: History                     0.420043        0.280185         0.555887   \n",
       "Subj: Horror                      0.446464        0.453734         0.371221   \n",
       "Subj: Humor                       0.015612        0.387291         0.467973   \n",
       "Subj: Juvenile                    0.387291        0.009033         0.551980   \n",
       "Subj: Man-woman                   0.467973        0.551980         0.008946   \n",
       "Subj: SF, American                0.678620        0.696180         0.542238   \n",
       "Subj: SF, Other                   0.698658        0.709566         0.603350   \n",
       "Subj: Short stories, American     0.345012        0.378784         0.154236   \n",
       "Subj: Short stories, Other        0.410243        0.441901         0.267602   \n",
       "Suspense                          0.607409        0.700271         0.227118   \n",
       "War                               0.541691        0.397538         0.450343   \n",
       "Western                           0.597331        0.399995         0.566770   \n",
       "\n",
       "                               Subj: SF, American  Subj: SF, Other  \\\n",
       "Adventure                                0.353699         0.404589   \n",
       "Bildungsroman                            0.517385         0.603264   \n",
       "Biographical                             0.498245         0.550649   \n",
       "Christian                                0.549132         0.591069   \n",
       "Domestic                                 0.548539         0.636083   \n",
       "Fantasy                                  0.333588         0.383953   \n",
       "Historical                               0.482939         0.526918   \n",
       "Horror                                   0.345467         0.402339   \n",
       "Humor                                    0.504867         0.575267   \n",
       "Juvenile                                 0.765662         0.744469   \n",
       "Love                                     0.525186         0.595271   \n",
       "Mystery                                  0.559048         0.581436   \n",
       "Novel                                    0.419856         0.466292   \n",
       "Political                                0.555919         0.595001   \n",
       "Psychological                            0.497222         0.572098   \n",
       "SF                                       0.033283         0.040291   \n",
       "Short stories                            0.433195         0.486580   \n",
       "Subj: Detective                          0.585946         0.587753   \n",
       "Subj: Fairy tales                        0.895691         0.889060   \n",
       "Subj: Fantasy                            0.264894         0.293262   \n",
       "Subj: History                            0.673623         0.664257   \n",
       "Subj: Horror                             0.393350         0.398407   \n",
       "Subj: Humor                              0.678620         0.698658   \n",
       "Subj: Juvenile                           0.696180         0.709566   \n",
       "Subj: Man-woman                          0.542238         0.603350   \n",
       "Subj: SF, American                       0.008973         0.009474   \n",
       "Subj: SF, Other                          0.009474         0.004930   \n",
       "Subj: Short stories, American            0.434280         0.510736   \n",
       "Subj: Short stories, Other               0.559454         0.592366   \n",
       "Suspense                                 0.507068         0.555465   \n",
       "War                                      0.545793         0.561721   \n",
       "Western                                  0.614310         0.646122   \n",
       "\n",
       "                               Subj: Short stories, American  \\\n",
       "Adventure                                           0.207870   \n",
       "Bildungsroman                                       0.056788   \n",
       "Biographical                                        0.236074   \n",
       "Christian                                           0.238174   \n",
       "Domestic                                            0.109499   \n",
       "Fantasy                                             0.351549   \n",
       "Historical                                          0.213276   \n",
       "Horror                                              0.204503   \n",
       "Humor                                               0.192149   \n",
       "Juvenile                                            0.442398   \n",
       "Love                                                0.120800   \n",
       "Mystery                                             0.301230   \n",
       "Novel                                               0.134760   \n",
       "Political                                           0.313517   \n",
       "Psychological                                       0.131778   \n",
       "SF                                                  0.462701   \n",
       "Short stories                                       0.061028   \n",
       "Subj: Detective                                     0.306963   \n",
       "Subj: Fairy tales                                   0.830778   \n",
       "Subj: Fantasy                                       0.186342   \n",
       "Subj: History                                       0.452634   \n",
       "Subj: Horror                                        0.207324   \n",
       "Subj: Humor                                         0.345012   \n",
       "Subj: Juvenile                                      0.378784   \n",
       "Subj: Man-woman                                     0.154236   \n",
       "Subj: SF, American                                  0.434280   \n",
       "Subj: SF, Other                                     0.510736   \n",
       "Subj: Short stories, American                       0.006597   \n",
       "Subj: Short stories, Other                          0.191764   \n",
       "Suspense                                            0.310424   \n",
       "War                                                 0.377393   \n",
       "Western                                             0.406797   \n",
       "\n",
       "                               Subj: Short stories, Other  Suspense       War  \\\n",
       "Adventure                                        0.337010  0.115638  0.229229   \n",
       "Bildungsroman                                    0.234800  0.263806  0.425919   \n",
       "Biographical                                     0.164126  0.424048  0.287602   \n",
       "Christian                                        0.356537  0.305192  0.389795   \n",
       "Domestic                                         0.287097  0.227193  0.473333   \n",
       "Fantasy                                          0.387953  0.412226  0.383082   \n",
       "Historical                                       0.214752  0.364295  0.258828   \n",
       "Horror                                           0.344361  0.220743  0.381992   \n",
       "Humor                                            0.319037  0.209047  0.474752   \n",
       "Juvenile                                         0.449006  0.784038  0.393613   \n",
       "Love                                             0.237452  0.175530  0.411591   \n",
       "Mystery                                          0.476156  0.091146  0.477566   \n",
       "Novel                                            0.153723  0.192682  0.292006   \n",
       "Political                                        0.336636  0.171695  0.343339   \n",
       "Psychological                                    0.285306  0.155095  0.447285   \n",
       "SF                                               0.543565  0.385281  0.460904   \n",
       "Short stories                                    0.092071  0.283967  0.346206   \n",
       "Subj: Detective                                  0.456753  0.200179  0.511908   \n",
       "Subj: Fairy tales                                0.760717  0.934237  0.859850   \n",
       "Subj: Fantasy                                    0.306997  0.383206  0.387575   \n",
       "Subj: History                                    0.398114  0.659533  0.198362   \n",
       "Subj: Horror                                     0.302688  0.458449  0.431080   \n",
       "Subj: Humor                                      0.410243  0.607409  0.541691   \n",
       "Subj: Juvenile                                   0.441901  0.700271  0.397538   \n",
       "Subj: Man-woman                                  0.267602  0.227118  0.450343   \n",
       "Subj: SF, American                               0.559454  0.507068  0.545793   \n",
       "Subj: SF, Other                                  0.592366  0.555465  0.561721   \n",
       "Subj: Short stories, American                    0.191764  0.310424  0.377393   \n",
       "Subj: Short stories, Other                       0.008164  0.466334  0.354288   \n",
       "Suspense                                         0.466334  0.010804  0.386272   \n",
       "War                                              0.354288  0.386272       NaN   \n",
       "Western                                          0.524258  0.565129  0.509350   \n",
       "\n",
       "                                Western  \n",
       "Adventure                      0.397866  \n",
       "Bildungsroman                  0.522048  \n",
       "Biographical                   0.443693  \n",
       "Christian                      0.482500  \n",
       "Domestic                       0.554101  \n",
       "Fantasy                        0.405356  \n",
       "Historical                     0.293159  \n",
       "Horror                         0.458642  \n",
       "Humor                          0.611160  \n",
       "Juvenile                       0.494705  \n",
       "Love                           0.507870  \n",
       "Mystery                        0.552993  \n",
       "Novel                          0.460582  \n",
       "Political                      0.635047  \n",
       "Psychological                  0.556617  \n",
       "SF                             0.619393  \n",
       "Short stories                  0.458005  \n",
       "Subj: Detective                0.559724  \n",
       "Subj: Fairy tales              0.881942  \n",
       "Subj: Fantasy                  0.434119  \n",
       "Subj: History                  0.517190  \n",
       "Subj: Horror                   0.466548  \n",
       "Subj: Humor                    0.597331  \n",
       "Subj: Juvenile                 0.399995  \n",
       "Subj: Man-woman                0.566770  \n",
       "Subj: SF, American             0.614310  \n",
       "Subj: SF, Other                0.646122  \n",
       "Subj: Short stories, American  0.406797  \n",
       "Subj: Short stories, Other     0.524258  \n",
       "Suspense                       0.565129  \n",
       "War                            0.509350  \n",
       "Western                             NaN  \n",
       "\n",
       "[32 rows x 32 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sansmatrix = pd.DataFrame(sansoverlaps)\n",
    "sansmatrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compare topic distances to social proximities\n",
    "\n",
    "We calculated pointwise mutual information for genre labels back in ```../select_data/build_genre_dataset.ipynb.``` Now we can compare those values to our topic distances."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "social = pd.read_csv('../socialmeasures/pmidf.csv', index_col = 'index')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(-0.33661622873030217, 1.3203791853901284e-14) n = 496\n"
     ]
    }
   ],
   "source": [
    "def compare_to_social(socialdf, otherdf, use_self = False):\n",
    "    ''' Compares two DataFrames, ignoring cells as instructed,\n",
    "    and exporting the results in two vectors for correlation.\n",
    "    '''\n",
    "\n",
    "    socialvals = []\n",
    "    othervals = []\n",
    "    comparisons = []\n",
    "    \n",
    "    indexlist = socialdf.index.tolist()\n",
    "\n",
    "    for seq, idx1 in enumerate(indexlist):\n",
    "        for idx2 in indexlist[seq + 1: ]:\n",
    "            if idx1 not in otherdf.index or idx2 not in otherdf.index:\n",
    "                continue\n",
    "                \n",
    "            otherval = otherdf.loc[idx1, idx2]\n",
    "            if pd.isnull(otherval):\n",
    "                continue\n",
    "            elif not use_self and idx1 == idx2:\n",
    "                continue\n",
    "            else:\n",
    "                sval = socialdf.loc[idx1, idx2]\n",
    "                socialvals.append(sval)\n",
    "                othervals.append(otherval)\n",
    "                comparisons.append((idx1, idx2))\n",
    "                \n",
    "    return socialvals, othervals, comparisons\n",
    "\n",
    "socialvals, topicvals, comparisons = compare_to_social(social, sansmatrix, use_self = False)\n",
    "print(pearsonr(socialvals, topicvals), \"n = \" + str(len(topicvals)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Medium-strong correlation. What does it look like?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEACAYAAAC08h1NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXuQXNdd579HM/2a7ukZiUych+MZWbIiJSNZUmGSBQqk\nYBOHrU3Cw+u1C7zBInHiVeyqDYsnAkoBlYqIKcHiYm1FKQUBpccAqQQvjzRmaWVLW2TbwQ9503Fw\nCKNNDKQnLKTKuwpRkt/+ce7p+zr33nNf3be7f5+qKWlm7tx77u3u7/md3+sIIgLDMAwzOWwa9gAY\nhmGYwcLCzzAMM2Gw8DMMw0wYLPwMwzATBgs/wzDMhMHCzzAMM2HkLvxCiDkhxO8LIT4vhPicEOJN\neV+TYRiGCWZ6ANf4DQB/QkR3CSGmAcwM4JoMwzBMACLPAi4hRBPAM0S0LbeLMAzDMLHI29WzFcDX\nhBC/JYR4WghxWghRy/maDMMwTAh5C/80gP0A/gsR7Qfw/wCs5HxNhmEYJoS8ffxfAfBlIvqs9f0f\nAHjEeYAQgpsFMQzDJICIRJK/y9XiJ6KvAviyEGKH9aMfAtDVHDe2X0ePHh36GPj++P4m8f7G+d6I\n0tnLg8jqeQjAOSFECcCXAPz0AK7JMAzDBJC78BPRcwBuy/s6DMMwjBlcuZszBw4cGPYQcoXvb7QZ\n5/sb53tLS655/EYDEIKGPQaGYZhRQwgBKmJwl2EYhikeLPwMwzATBgs/wzDMhMHCzzAMM2Gw8DMM\nw0wYLPwMwzATBgs/wzDMhMHCzzAMM2Gw8DMMw0wYLPwMwzATBgs/wzDMhMHCzzAMM2Gw8DMMw0wY\nLPxMn42NDTz11FPY2NgY9lAYhskRFn4GAHDhwhoWF3fijjvei8XFnbhwYW3YQ2IYJie4H39B2NjY\nwPr6OpaWlrCwsDDway8u7sS1a20AewBcQa12EFevvjDwsTAMYwb34x8Bwtwow7a219fXUS4vQYo+\nAOxBqbSI9fX1gY6DYZjBkLvwCyE2CSGeFkI8kfe1ikqYsG9sbODQoQdx7VobX//6X+HatTYOHXpw\noH72paUlfPOb6wCuWD+5guvXr2JpaWlgYxgUHMdgmMFY/A8D6A7gOoUkStifeeYZbNr0OmRhbScV\ntYWFBZw58xhqtYNoNvejVjuIM2ceGzs3z7BXVgxTGIgoty8ANwJ4EsABAE8EHEPjTKfTobm5/QRQ\n/6vZ3EedTofOn79I1eo8ATMEPGf9/jmq1bZQr9eLdZ3z5y9SrbaF5ub2U622hc6fvxh7rL1ejzqd\nTuxrjwK9Xo9qtS2pnzPDFAVLOxNp83TO88qvA/hPAOZyvk5hcbtRZOD0+vWraDQaOHToQXzjG58G\n8HnIuXELarV/im1tO1cV167Jaxw6dBC33/6WWOdZWFgYOytfoeIY8vkAzpXVuN4zwwSRm6tHCPGv\nAXyViJ4FIKyviSPIjfLyyy87Aqp3A/gC6vUpfPKTF3DPPXfHugYHZ6OZpDgGw0SRp8X/fQDeLoT4\nEQA1ALNCiN8hovu8B37oQx/q///AgQM4cOBAjsMaPPfcczduv/0trnTNjY0Nz0rg7/Gd73wN+/bt\ni33+oFVFXqI2zNTTpKgJ+NChgyiVFnH9+tWxjGMw48ulS5dw6dKlbE6W1EcU5wvAD2JCffxhKL98\ns7kvsV8+j3OZXCdNLGGYjHMcg5kskMLHP5ACLiHEDwL4ABG9XfM7GsQYikqW1nPeljgXejFMcUhT\nwJV3cBcAQESfBvDpQVxr1MgyoJp3cJYDpAwzHnDlLmMMB0gZZjxg4WeMmZRCL4YZd7hJ2wAZxWwY\nHeNyHwwzyqTx8bPwD4gLF9Zw6NCDKJelu+TMmcdi5+szDMMoWPgLTppsGBPremNjA8888wwAYN++\nfWyFM8wEwG2ZC07SylqTpmIXLqzhta/dhre+9Ufx1rf+B9x44y2pm49xB0uGGXOSFgBk9YUJKOBK\n0iDM5G96vZ7V5G1zZs3HRr1Ai2EmBaQo4GKLfwAkyYbRrRKuXduMj3zko65jpqZuALDVddymTTcm\nbuuc1d4AvGpgmOLCwj8g7rnnbly9+gL+/M8/gqtXX4gM7Opy5oH/g+PHV/tiurS0hG9/+6sA/tZ1\n3He+85VEufVZNXvjvvcMU2xY+AfIwsICbrvtNqPg68LCAo4c+QCAfwVgP4CDAB5Huby1L8QLCwv4\n2MdOoVS6bh23HeXyDyTOrc+iQKsIO4oxDBMOC3+BeeCBd6NaLQP4WQAvANjlE+J77rkbL730JbRa\nn0Cr9Ri+8pUXE6eJZlGgxS2iGab4cDpnwVH5/85Wwnnn/6cp0IqTuqqu02g08PLLL3NBGMPEgPP4\nx5xRq5Q1mazUMcA8rl37e9Rq2wG8xIVtDGMICz9TOMImK3tV8HEAPw6A2zwzTFy4gIspHCqQDcCX\n1mnHAeoAljAu8QBOYWVGBRZ+JhEmIheU1mlnD/1fAOsYhzbPnMLKjBRJK7+y+sIEVO6OGybVvVGV\nx+oc1eoSATWq1ZZHtlI4SWU2w6QFKSp3B7IDFzM+OPP05U5cV3Do0EHcfvtbXH75qN26nBvQR2X1\nDDK4bXot53G8MxkzarCrZ8JI64c2zdM3KQZTcYBdu3a5CtucYxykC8X0Wt7jnn76Wd6ZjBktki4V\nTL4A3AjgLwB8DsDzAB7SHJPXSmgk6PV61Ol0qNfruf6fB0EumjjXjePWUNdrNvcZu3GcY6xW56lc\nnhuIC8X0voKOO3XqdOx7ZZg0IIWrJ2/hfxWAvdb/GwC+AGCn55i8nkvhcYpcqTRL5fJcbl0xowRL\nXffYseNaYXVODnEEPd2kco6A7db/5VezuY86nU6qZ6Gj0+nQ3Nz+yGuFHZf3xM0wTgor/L6LAZ8E\n8EOen+XyUIqOW+R6mbZW1qETrEZjmSqVedd1gRmqVuddYq5bKSQRuai/8Y+xR8BM4ueSx0qGA7lM\nURgJ4YdM2F4H0PD8PJ+nUnDcItchINraTINOsCqVJs3O7nNdF9hHwLm+mGUldEkzgUqlRiIXSpJ9\nBUxXMlHHjYvlPy73Ma4UXvgtN89nAbxD8zs6evRo/6vdbufykIrGoC1+Ir9gKTeP2+LfQkCvP/GY\nukDM79W+v2636xMW7xiPHTuuPS7J9Uwtf5NrBR03LhvZjMt9jBPtdtullYUWfgDTAD4F4OGA3+fz\nlApOr9ejY8eO90WuVGpQuTyXe3DQK1jqAw5ssyafiy6hzMLi100etdoyVSpNrbCoZ1OtzicSnriT\nVVaWbdJnVTTLmt1Zo0HRhf93APxayO9zeShFxpu5ogKqeQtA0PmdQqubeJJk53jP719Z1Ahoa4XF\nf3ybKpUmdbvdxNeLyjzKwrJNsjoqomWdxSqPyZ/CCj+A7wPwbQDPAngGwNMA7vQck9uDKSJx3B5Z\nYupjDxpD2knJOXlUKvNUq20NFBa38Fy03E87qFKZj+3jD5ussrZs456vqJZ1UcfFuCms8BsNYMKE\nX2dNVatbqVJJ5tYwoSgfZDV5dLvd0PHY421bop9PVk9SyzbsvHFWR0W2rNOu8pj8YeEfIXRuDOn2\nGGwq57AF5vz5i1StzlO9vsOXPqp+X6k0CdiR27iTTIjeldOpU6d9k0CcAHERJuQgihZ7YNyw8I8Y\nbrdHk2q13amszqgPaJjAZBnYjOMmUs+gXr81sDag2+366gxqtS3UarUyE6O4xWju53iCgBrNzia3\nitmyZpLCwj+CmLo9dCSp+NUJTFaBxbDzBBV/ee+5XJ7TZvGcOnWaKpV5mp3dS+XyHJVKjcxdYqaT\nn3vl1EvlhkpyfYZxwsI/4iS3OvX5/0GBYu8qQTfhxLWmo1YTQdfwup5kOuk513GqzmB2djeVyw0q\nlWaH6hZx30+HgFsL5T5jJgsW/jEgmdXpr/gNy48PPo8tvvX66wNdL6bncRZ/ed1YtdoytVotTXrn\njDWRyeP87STi9+3Jw5JWk3SjsZw6NpNXFhWvICYDFv4JIsriD8uPDz4PWX8zS0CXZKuEWSM3kH88\n56hanader0fdbtcnjkCNLl++7Cpeq9W2UKnUcB3nbyfh7Nvjvo6OrNxYTpecN6Zi2pEzLMZh6h4z\nHae36R7HDMYXFv4Jw+kaclb8huXHh4lPubxoCfRuy299muI0Rzt//qLlhpkhYDuVy3N0/vxFy+Lf\nSkDTcuXMEFChqal6v3jtgQfeR91u16idRKnUcFxnK01P12l19aQ2qyaLbBk1plrtZpK7hO32iWmU\ndW0a44hyj5nEfGZnd6dehaSFVxuDg4V/AtFl9QQFisOsQF3mjLT8g90q3g93WFHa9HSdgCoBtxAw\nTzITZrNltbu7gXa7XTp79my/Qvf8+YtWP345aUxP16lUalrn2ELSx16jSuUm132lbdnQ6/VobW2N\nyuUGAZ+gpEHcsKwk7/hmZ/f23WPexnmzs3vp7NmzBiu346GvW94UsQp5nGHhZ/pEW85tKpcbtLa2\n1hdaf4fOJUtg/WKn+3AHCW2r1fKdR4roMsn4BJHqBqpzLfV6PapW50n693vWv1t9QiwnlLZRUNkr\nnt77OXz4YceqYpu1WnGvooBtdOzY8cjXIagOQR/jqNGpU6fp1KnTPqtdpoz6VxtEzkmuZz2H/Jv9\n6Sh6TcI4wsI/Zpgsl00Dg/72B7ZLBqhRtXoT2XGBTl9Adf7rMMte9/O1tTWamdnjEc091hiUxb+F\nZFzB71ryW8Y9AioEvNFzzjcS0HFZt84JMCgNVB/nqPrE0xs3ATaHxhdMKo9tgd9jHXOCqtV56+/U\nimaPdcwvBoqpXFU0CXicZKBftbjYR8BM5ASVFUUsEhx3WPjHCKe/tlJpan3YJtWjCrcI+S1CKRI/\nbgnMDgJqdPjwQ/2/dZ732LFgV4J3pXH48EOWtT5DXhGV7h9nN1Bvxk6P6vUdtLa25hi7nJSmpma0\nFjHwCZ8o9no9arVa1jj84usXqw4BN5E3U0qOrUJypTJPwHFqNJYDRU3fa2grlUoNOnXqdP8Y6ZPv\nkMpmqtd3UL2uUkR71u+2kr06Iu3kJjOnqhQn+J01g7D4OX7ghoV/TLA/PMriWyJplb+RKpV5OnXq\ntCaL5jABVV/1qPNDYrsddKL2BkvMoneekgIa7ErQxxouWn+zzXUPzm6g7r111fHbqVbbQj/8w29z\nTUp33XU3VSpLDqt2CwGvpkqlqfUpR22V6BarT5DO4i+VmlQq1Ql4PzljC0rEg19H9Rr9DAE1qtdv\nDXgd5XVsiz86S0v391NTdapWNw+tCjjPKmSOH/hh4R9hvG4ZaQXq3QRAjVZWjlhCpizJ7eTto28X\nPu3rC02326VyuekTNenDdrtjwveajXYltFotqtdfT3Zefo+q1e20trYWeO+qd49uheAVPnlcm9Qq\noFKZD2zZHGWJKkGRk0mNpqZuJKBMto+/RrXaVsvvb54xY2c61bT3tLJyROtOc4pntTpPd911t7Zd\ndlhcZZhWcR5WOccP9LDwjyg6l420zG+1RM0bdN1NpVLdyjbRuWx6AfvoSutUilHDJWrl8uuMBE2X\nr1+pNKnVarly3O2NXdwTkm4vXy9ywrjVc8+3kNfV4a0BiLL+oizR1dWTnmfQpk2bZiwrX0068QrI\n7Od1jvyrrG0E3BjoplMrIud7Q+3ZoH89xlsMOX6gh4V/BAn64Noi1CavC0b+/Gaamqr7REhlx1Qq\nTWo09monjG63S71ej1ZWjlC53KB6fRdVKk26//53Rwqpd9KYmqpTuTznynGvVjdbY/NW5M71J4C4\n1nmYqyPudoxBbSzkROp9nttoZsaZkRNv43d3to33nux01uhJ1n0tZ8rrpDR4m6RJLg4s/CNImBWj\nGpPZ1rgqzDnRt0j9Ac4ZAqq0unpSa/EDN/fdPu4UyeiNYNwfvC4BjzgEObz1ghTUluP7WwL98UR+\n69z28d9CzsCzKVETRKfToVLpVdrnKV1j7gIyU6F1PzM7ziGfz0Xfa+4dk+69cdddd5M3CD8pAc9J\nmeTiwMI/gkRZMeoDvbp60nI53OwSgnL5JktEVIDTzjSxUwW9E8ZzlkU+Q9L9sIWAi/3ioSD8/v3X\nWyLWIm+jMm+zNZVxY38/T8CvUrnc6Fv+3rYIzn+9WT1xLP6wgKD6+8uXLzuekZ1COTVVo9XVk9qU\nVtN22O4K61mamqr6JhhTi79a3Uwy8Oye0E23o3Te86hOEqM+/qxh4R9RTK2YoApQGQ9wW+7qQ3Hq\n1GnNhOF3V0hLtBqYoUKky+jpEdAg6cLxnm+OZMD4RgKqVCqpOoFXk8zfVxPPNiqVmnT48EPWvcjj\nqtXl/rMISh/1+r/jbqvonBAqlSaVy7scz6dDwOuoVHoFVavzfR+8d0UU1IohbFMWp+8+6jX3vjfe\n+973kbcYDLiFzp4923+POKueg86XZVYMC7FkWM+BhX+EMX3ThPXTNw9a+gOU0kI/HOkzdYtwzxJ4\nrxtjnoCHrN+p7y9aFnvZEn1dcdR/1FrCcmJzH69LedSNPSzrxV+0pa7dI5myWSO5ktrcz733BuG9\nYwjaTyDNa+48LqjhXbfbpcOHHyZdHYbzPFn5yNWYuBmcZJhppoUWfgB3AngBwF8DeETz+5wey3gQ\n5VoIC1q6awL2WBa4roVCLzJLwt1KwNuLvkeVys3WCsO7ApgllZcvXRWvIX8MoE7elNKZmd1WSqg7\nffSBB97nq+at13dQq9UKuH+32LVaLV/hVLW6ZLnAdKmXKrvH/pncGMbdblq3n0CSIHQYhw8/RN54\nR9iEoMgqK6ZIzeCKwLCDzoUVfgCbAHwRwCKAEoBnAez0HJPbgxl10lgT7g97l4CzVK/v7Lsa3JWz\n4W9Y/yTyBu0Hf21tzZOO6XQteVcGKs2zZk0G7vNVKvOOfP0WAY9TtTofUBy2Xetu0a2I7AnsVnK2\nSpA+9KDUywo5A7Kzs3ut1UhwUNvUJRUXr0vn7NmzFOYCcr9+yQXKfQ7ehIZo+GmmRRb+NwP4U8f3\nK16rn4VfT9oPq1+s7WpTb+VslCj5txzskPThz5MKhuqrUc9ZwqlLaZyhUmmW7r33J0kXXF1dPelw\nYbgzetxtoJ1ZN/pGb2G7jrmL4nTjnLMmHzsFs1ye8xVfefcTMHVJxX1PeFcPJha/emZpsmLy2nZy\nlGGLP1j4fxzAacf3PwngUc8xOT2W0SYLa0LX6VGXOWTia/Zm19jN1TquvjXu5mhNS5z9lvTMzO5+\nlWm1uuwQlBaVy4tWW+Q519jL5bm+v3t6ukbALsc5o/Psdc90dnavo5/POZJ7EaiViVoRKct/Bym/\nv9eN4xVWae37dx8L2hshirDVn84FFPQ6BrkFTZoCukVObTS/d2R9/Fm44YaZZjrywn/06NH+V7vd\nzucpjRhZWBO63u5Jl6Je6xu412XdOlseO9MzpSXsz/5R/vYg10257N8TANhGjzzyQSvDaQe5U1Wj\nK2v9z7Tdb4QnJ5nt1jjLJOMRj5O7i2iLwuIhTiGRaaIVcnf1tFNE4+6uFfVeiMrqCSKOO1HX8ntQ\n2SxZZ85kGZQdVFZPu912aWWRhf/NAD7l+J5dPTFIa01ktRQNcpHIvv2zVC7PBbpXVA+ecvnVJCt8\nl31tkvWdPNukc2Hoi9PeQLrAte5e1TOtVreSSh/11jrI71U1r5oIToSe13sNOU41ScqmcpXKki82\nYPJ65OVLTvL+yEvkws6bdebMsF00WVFk4Z9yBHfLVnB3l+eY3B7MOJD2g5bFUrTT6Wh66OylSuU1\nPiEulWatrBd/0VO32w1sk+wPDBMBN1irBZlaOTVV02wacwuVSvV+L6KkdREqu0mXoTM11TCOh9g1\nD3Z9hV201vRlA5kIeF5CNezgpCKq0C7re8/qvoddx1BY4Zdjw50AvgDgRQArmt/n9FgYRdo3qN7i\n30zlciNkQ3R5nLc3j3l+vfTpVypNqtd39IupvMd4z+90eQTdt24MMqjcoaAMnaCul95ryHoHd2W0\naspWKjWtvQj0RXdh5OFLLoLlGzWGPCanLO67CG2iCy38kQNg4R8JvPvfOgub3Fk8Xr+8uzdP2IdO\nJ25eYQ0TQOeHUeeCUgS5rmZm3kDV6mZfhk6QKOi6q8q0UG9l9Jwl9DIgqlxIU1PBPf115GFhDrsH\nTpSw5zU5pbnvIkyYRCz8zIDo9eSOVs5ArvoA1etqm8A5j/DJbCDnByPsQ2eaYaIrZLM/jD2K2nvW\nuzXj9HSd6vXXU7U6328jESYKug+/jDH49+cFjlBQSmtUq+pBkPWEEud8JiKa1+SU9L6L4iJj4WeG\nipoQpG/7BEmf9i0OV4c+wyZLsXF/GDuWq0XVHOgzcdzjdgtPWLdS//WcIj/rE3c5GR4nf0O7fQSc\nyyW/P6vnG3Ye3e+SuEBMhH3Y/nTvWNjiZ+EfKfL8ANnW/07ypjKGfTDijCkobdFv8avNavaTM/fe\nS9KdrPTuohmSdQD+ymjVNttfHBbdLiMMndBm5X8OO09Qk7qkglgkYTdh2C4yIhZ+xpBBBKTUB1i3\nrWDaMd1//3sorBmZOlejoVI0/cVfuvHqgspBDde8qarOe7RjAy1rxdPtrzhmZnZbbZk3k8pSkpNT\nO3BsJs9aJ7RBm8tnce5eT18BXavJuowiuEAGxbAnKxZ+JpJhLE+jPhhxxuTvNKpvTdDr9ejs2bO+\ntM96fY+vkZsiWMDdY4pqxeyeeCquFcfUVN1K5bTdT3JymA1cjUShW63U63us5nbpxDfMjx3k5lpZ\nOVIIF0geDFvkdbDwM5EMOiBl8kExHVOv17M6ZIY3I3Mer3PDBAVSnUHrIKtVl26qEzV1Lm8xWanU\n9FniMhbSTfw6FMniBza7Um7HaaesIqRu6mDhZ3x4hTcri99E0E0/KKZjkgVku4wsfu8YorqQese6\nsvJBrXDGcWME9QSK0xnV1MK0WyXv7W+tmTZryntuXYsGu15hH6kgvnoeRbSOk46pKIFcHSz8jIsg\n4U0rCCaCHveDolo6qCKt8HPeS85+Qfff/+7Q59BqtSy3R08r1kErg1JJul+89QSm9xVUJ2DaGTXK\npeRF7tEsq4Kdxwel3sbtE6TbeCVo7+YiCKKX7Nqby69GY5nOnj079Htl4Wf6RAlU0hS8ONZ5HJeS\nnQl0q1EQuF7fSaVSnVZXT6Z+FnpftZ1i6RVN6fuX20aWy3OhAmJ3Rt1Dqu+/89pm2UlyzFHBZt09\neoU6aCWTJtd+FNw6aS12/9+rrqTDv2cWfqZPXOFNI+izs3t9lk9ayzjsQ5lkuR7WslhvmcuePcEr\ngx4B56hane/7u4PaQnh3+lLnDJtog+sD/Lt7hb0u+o1iauTcUCYonuK9n7D3VBHdOk6yiG2FZYsN\nc5XDws/0iSumcQKsOveF072gMHUp5R1wtsfcJrWPQJCPP8zvHjTOsB22gl4Hdxtq/+vT6+mavPl7\nB6lnpGs4p98acp91zs0U5JoJmpBM31NFnASyjG3pssWGma7Kws+4iFNcEueD4QwkelsZe//GxKWk\na7rmdbGkIcga1k1qXr+7M5ApxbVJzoI0kx22dK9D1GRn90SS/XxKpUZkemmtJltM12rLgc/V7j66\njer1HcYTlTc+ECcuURSyKrYqWqCXhZ/xkSZ7Iyzoa1s+8doLm/iJvX36s+i77reegxuj6QKZqtmb\n3E2rRuXyTVSryR22TKw/7/PTWehKPOL40v3Hyk1lVMwgbCWztrZGa2trrgnWxJ0T1MaiaIKoI6vV\nSBEqdhUs/Exq4gR9k3zQo4QlqGdO1Ac17AMtA7JNUh1FgToBh/v+eR1uYfY3ewNmqFJp0qFD76a4\n/t4gC1091zi+9KiMJfVs1EqmXt9DtdoWOnz4Ycd+xdv7QeqgCckbJNYJXVGalgWRtQuqKC4tFn4m\nc9Iu/eOeL4l4hLkXgmISwG4CZujYsePa80mXjioUU83eyPG1j+SWjGr7STtwLEQlRs2C20I3eUbe\n+5buoPB6ADtd9vVUqTQt0XdPZqq4zMRlFOTbH5bFHyXCaVxQRRH4IFj4mcwxEeK4H4wol1LcDJ+4\nE4lzsxVdTMIOBKuMGJ3Fv4VkL56bSbWctjegnwtcTZhObFETqn5Cm6FyuelzYfmPPUfAjZrJTGUN\n9Qh4nMrlBnW7XatIK3wfY+e4vfs15O0GiRL1NBNSmpqHQU0ULPyMlijfbNTfZmnFmYwlzioiSkjD\nUjV1Amafr0fSJaSaqdXJ3jxllmT3zTbJXjz+7Sjr9R1aYQx7nro4StAzCkr3nJnZ5gtK+4/tWffi\nd1/ZXUX3EzDjyPvfrB2z7v4GWdBl8v5M6oJK8t4fRnCbhZ/xYfuTbya5fPenXZqeI20gK86HwtRq\nMvlwhmUheTti2sL1ywTsJXcztTcQUCLgpr41e+jQz5C/hcRml8XvvRfd8zQtnlPn0U9oKkXTXVyk\nc9XYWUKyEM3eDtIt8HZK6EVrQthHQS4yosH7+U1XpKauKufrlFctTNaw8DMu3G6LdG/ItMvXPD8U\nJhOTChzb4raPdP35bVfFVoeg9ywLtkrAL/bHX63OU6vVotXVk67gsdO9ERYYDxPxoMlL129f7no2\nY4mzf4cvtbOYt9pYPROV1aNz6biLwNxFa4N+ndNcL0kaatx7GVZwu5DCD+BXAXwewLMAPg6gGXBc\nXs9lYrHfiP7g5KCzLeL4iZMQNTHZ6af7KGhHLv8H/QRJV86MNXZnxetFAmb6LSZOnTpNrVaLPvrR\nj9Kjjz5Kly9fNs5Q0gmGs310lHvIfZ0OyRgGOb6cvvtg4Y6TRhqGTmTTuBujMF2RBr1Hwp5vXrUw\nWVJU4b8dwCbr/x8G8CsBx+X0WCaXLC3+tOOI4ycOO0/QBzcqo6NanaeZmW2W1a73P+t94TOuMcuA\nb1d7L/YGMa8hoEbT0zsdlrg92Xl39QoK1KpmdSYFaEqgKpWbyO96Cq741T0rndDFXfE5j8/C3Rjn\nenExiRNFGRXeex1kfn8hhd91EeCdAH434He5PJRJR70Rq9Ul0uWMDwL7g2XmJ3aiPlRBeeQmGR12\n6uLNlvCOlL+8AAAa1ElEQVS/loCayyXjt5zJmiC2+aznSuU1ntVLj6pVdW7/JOtsj1AqzVrxht1U\nqdgZOHYvIbWyeKg/oejaOzgL0NQzunz5spWDf8Iawx5rAqrHmnCzzEopivFhNsZssn44q8cv7k8A\nuDfgd7k8FMYtDLpOkIO4vv3BCnY3BAVBZXDRXyQV1e+GSBY4yb99nOwsnf3k9O87P7yqalhWEDc1\nFv8MHT9+3HHdi9Y5t1vHHiddmqRqNy3jB0qYbyWgRqurJx3iqFJC3U3igrp8OifESkXl4KvVSoca\njeV+L6E4VmhW4jUod2Pa8Sax1Ifl2vEyNOEH8CSAK46v561//43jmJ8H8PGQc9DRo0f7X+12O8dH\nNXkM2zKJG1xzZ6J0yJsy2Wzuo7Nnz0Yu0e+7712WIL/RN3kAM7S2tqb98KqgLVAmXTBYuY/8E8O8\n9eU/X6vVsiYxf/A1qJmaCiDbf2t3+Ww0ln1VtvIe2z4hivNaZ5mSOAiLP6vxxv08DCuY2263XVpZ\nWIsfwLsA/A8AlZBj8nlKjNYyUS6HQeYbxwmuuTtL+jNVoix+vzD7Jw9gGz366KNa/7m9xeIJS8i3\nE1B1FUfJdgn+cwLfRbKfzy6fn1xmyLj/ptG4Vds+eXq6TuXyXP818jZpk5uu7HOdq1ZbpkqlmdjH\nfPnyZWtVYl5AFyWWebobg6zuPILIptfOqrmgKYUUfgB3AvgcgO+KOC6fp8IYBS2zXqLGsZ50/Wb8\nveRVbvperY9f37jsHNnuBX2aY5D/fGXliOOZ9Qho0czMza6N2nUf/Gp1cz+rR3f/tsvGnznjrHjd\ntKni269XbcTi7Byaheip10r2HaqQbD0RbcWaxFecKaverJ4sVpw6q7ta3UqVin7Dmqxxvv+ybi5o\nSlGF/0UAVwE8bX09FnBcXs9lovB+mIKDltGplUk/mCa5695jdf1mvGmEzmpU7zid+eju6ltvemaN\nZmbcWSVB/nP7mdl+/Gp1no4dO+6LQ0TVEDizPoJy6uXPZ0n2EZolb2BZlxGUNpVR/X2joYrbftE3\nQeqMgij/dtSkkKV7xj2OtnZizdvyT9pcMAsKKfzGA2DhT433w3T48MPaoKUdZIxXMGRCVC54VIGM\nt9+MSQpneHxAifY2qlTmaXX1pO98nY5/lyy1KbrbXWRPAKapjs6xuZ+7O8gtg9DOVZhewHTWvEk6\nq/f5KOvb//y3kN22YXvg1pJRHUTDJoW4QdGo94DTQKhUmiRbZ0evWLKk0+l4rtujSsW9QswLFv4J\nxtTyUVZxlo3SnATlnHt92GosYf1mgiabYDGV5/ZWqk5N1WlqSr9LWND9qnRJ24+vjzNEpUW6zxu8\n0pLCv93zLObJ2fXzTW/63tiTsX8MdjsHnUjaDezaBFTo8uXLhue1n0fQpKBWK7rXPa47Kc5kFsfy\nTrrK7Xa7js+bbWxUq5tzd/mw8E8w/g9bh+y2wvoPV9CbPEm2grJadVkyui0AlRD4BdfOeTdzMfjF\n1NtlUubXhwuB290zT6pfvy0kzniB2TOJE1vp9XqeCUxN3G2HEOszdszfF97Jy28cyO9luwrnvsQ6\nwoq9wpIJTFacQeeJCuqHjSuKNO4nafFvtd47+cbPvLDwTzBZ+jrjWvynTp22ApEyl33TpiqVy3OR\nQUjnysPdbyZYWM2qa52VqtEToDqvnJyOk7M75bFjxwNTN80tflu8S6VGoCg5n8XUVF0zod1incds\n4vG/lv7MplLpddb7RO3QdZKAX6ZKpWn8XgmLHQS5FmWTOH1/o+DX2iyNN2xcZs/JPylHncv++8d9\nzzhvVxML/4TjtXQOH34okeWjO1fQ3+qyVIDNVKk0XWltUa4l0+CY3pqUYmp333RWqppNgL1eeFuJ\nXq+XqBDq8OGHrevvIGVFhwmJM/tF536Ka/E7n32jsax5rWoE/CoB4bt4JUHdi861Mzu7l8rlBoW1\nb05q8SchaJJRr7nJKiCpgZAWFn5Gm9WTNGUu6m97PZWX7i8+0vWjNw1CRvWJCUrhtPcAdreGuOuu\nu13HO7NynJg0kjMJNjt/lkagspzI9YFQVekbP34RB91zCHL/ed8zQe+JrHvi6MYodyOLH9dJYiCk\ngYWfSUXcScJ2j/j99GGte6PG4EzNjJMa6v7w2lkzrVarv5NUtRqc351UqIPGGNZczfRZp5nIoyYp\nt+VsByTzECuvUJtu5xh2H91uN9MWJN4xHjt2PHFlbhqDKy4s/ExikgS2bKE8QUA22+15x+GtVo0S\n4lOnTlvW5F4qlZr9bB7TgGLcNrxhLirdRARU6f773xP5rNMKh0lxVavVopWVI/2iMG+NQtaYrNxM\nybKtRNAY067YBgULP5OIIEs5rv+4XG7QysqRxB8MfVrlDMm9bfVbJerGMju72wqOlkgG2rYQcDjS\njeMch2kbApnq6Q5KNxrLdPbsWer1elYMxNnTf5Zk/5/sayjCnqM360VOgtv7E3Wegh811rgT3CAF\nOWuXUh6w8DOJ8LdNtjNaTEiSQWGaRipXEbeQs6I2yB3gnzTs1FD599lUdIZfy73t4crKEQrPOjLf\ndEX37HTPMm5xVRrX3DAIcqGpyTZrBum2SQILP5OIqIyWsL+L+4EIs2ajxbvmapLmvL5+0thHdvrj\nHtq0qUqVSpMajeVQt0bUfQVNUGqjEXcQU6W5eiezc66JIGzTFSXaQZXZshhr3lXtHDR5dDodTWM5\nfTC+qOjfJ8EFeuMOCz8TGyUG0jI13xrR1B0R12caltfv3HXKe/3V1ZOWyLYDJg3Z9Gx2dh+VSs3A\nZlom9xUkPPfd9y5ft8xGY9nXbG16etaaaFXuvN2fqNvtanLem5rCuLZvklHN5ZxBcZPiqlGz+Imc\nbj2VwnvC2GAZN1j4x5S8lpre1gdegYrjVgkLlCoRNc2SiBc0tUWvWt1l/bvU700k88WbvnvTVQjH\n8R3rGrsFpf+pDJZ6fU9fhHUdSVU1swxobya1BwBQtraNdE7MHfJ20ZRjqfRXD87sHW9Q1dkJVAXj\ni+7S8OJO4TUzWIpA1s+ZhX8MyTN7wStSYVWlTkxaOujzojdTqVQnWd0Y3JbBe+/e8ehdLarHjMwR\n73a7/Q+YvieQ7QZSY4/TqkLX2E0V/FSr8/0dt4LST4MmGXusPce595AMcDtdcW2Nxb+FgGUCfrlv\nwYelw5qkzXrfM0WbGEYl80bhTEBwbr2ZBhb+MSPPN3VUI60o337UuIIDtRWfpRn1DEwKo9RWhaaT\nkNfiV7n+cXLLw637W/sCGiSYQYVowfd2kYCZ/srh/vvf7Vt1yO93EzBDKysfNLqfOC64QfeaN2EU\nMm+IvOnPW0htvZlW/Fn4x4wkzdJMSTupRH3YgtwxTh98tbo5dZ66qY/XOV73vrruzTN01bGmwn3q\n1GnLPWW3IYja6Ux37rB7UwVp6nhZt9AkYMlxrEzJLZebRm6QqPdZ1gZIHiuHoq5GvPtE6AoeK5V0\n8RUW/jEj72VsWksp6sPmD9RudYlLvb4n1SSmru/dsMU00BwUR3BuSm9SCKXOKVs+zJBMh91Csq+9\ned8W7/i891atztPKyhHf1n69Xo8eeOB91vM9TYBqozFDU1PKHRS+yX3Y+yxLA6TIK4cs0dVK2JO0\nO6vKmbSQBBb+MSTvZWyWllKQW6bValn98aPTRU3GE3SduPehEzTvtn2mlcP6Fc6cb7JLso2hmlSc\nHVC9brJeT+3gVSO7aO0ElUpNx94EwRurRDXRy8IACTtPVu/DIlj+YZlTq6snKesdwlj4x5QivJmj\niBIuKaD25ig636aJNZilxej/gLZ9H0pvsVVYsFcX05CiG/whVxNjmLCapGDKZ+zNXNpC9fqydhOc\noMkr6H2WhQGSRQfMMIqymoiqlXC2FclinCz8zFAwdxXITcuBFjUay5EBWJ1IZu36cgqafkcqd7FV\n0mBveP/915OuhsK5Y1VU0ZX0H+/zHLPHSmnNJt0xrQES9Iyy2Ku2SNk9phN1VsZcoYUfwAcAfAfA\nloDfp34ATDLSvgmzCA5GtRlQAugV5mp1p69UP+79qON1WT3l8hxVq/PUaCxHpt+ZtpX2W/k98rrB\nvEFhr8tJJyS6YPrq6snCCKLuGaXpgOkkz0SIJATVSuRBYYUfwI0APgXgb1n4i0UWy+M46YBxsoCc\nFrMqMnO7YmT6YqNhL5nT3o9unPbSPFzQnT/rdruujA71OzvP32vl26maQfsIl0qzgUKizl2rbaFG\n41Yql+dodfWk0bMfNN4gdt7xg2HhzerJiyIL/+8D2M3CXyySfljCUhDD2vuaZgGF9WyXdQCqUMnb\nF2fe2J9ten8mE5LOhSNF2g6oqr46Uuw3k8y+cVv51eo8ra2t0aOPPupz2yjXj/q9swe9c7Kbnq7T\n9HTd17emyHGirCamok1wg6KQwg/g7QB+zfo/C3+BSLI8Nsk+URats3LVFKdABReBPU7AWZKFS87f\n3WJNDOH79gZdz/QZhW0b2OvpGt61fZOUM91TFWTZTdd2+44PmmzcE5PfZTRsq9eUccrqGTRDE34A\nTwK44vh63vr37QA+A2CWbOH/roBz0NGjR/tf7XY714fFxLf4o46XmSWzlvjsJ2AzlUqNxAEtW0Rt\ngXX63PVi2iZdHx4dJm6hbrdLlYo7+CizZ2pk5+tfdLV9kG4c52Sh66uzTN4dwtzPVrV33hu4+qnV\ntnjaUXQ8103v555EIS067XbbpZWFs/gBLAP4BwBfskT/OoB1AK/UHJvfk2ICibM8jlohtFot0vWe\nb7VaiXzvuiIYZyWt8r3b/fqVpb+N6vUdodeJE5eQ+9LWqFZbjgy0mlv8NapUmqH9h5wbuoS12MjL\n4i9KeiQTTuGE33cRKf6bA36Xy0Nh9Hj92CZWXZRYSuH39573txQ26/Uf9DfO8UqL3N2OWVnCYeeP\nn4nUpkpFtkfWuZ+cm9ZIH3+DVM2CbAP9SrI3gN9C5fJN/c1XTJ5t2O+dk3ep1KByeS40iJ70tVbN\n75hiMQrC/yX28Q+fNJZcVIWnLhtF1x0zygXhFmbZqbLRWNYW+yQJ6pnXHoRZ2PaE4BVEZ0aH7cZp\nW+6Ytnbii7qPqGcfNZHHed318ZVbXKsUphgUXvhDB8DCPxCySHszqfB09p5Pck37b9ydDINaKCTx\nRSdtU6D+rlpVLqDonZ9MJ6eo+0j6+yziOSqGMioB40mBhZ+JZBCFLlHpnqZWub3ZSfwWCqZ0u91+\nQzYvYWPWBX1NJrO47rU4hFn0QSuoqAwuXQwlr8IoDiQng4WfiWSYhS5xP9idToeq1WWfP92khYIJ\naTYfSTOB5hE0NY8RxOsFHxRDyfr9woHk5LDwM0aYthYYNt1uV2Px16hanU9dpJN2AkxT/JbHxGsy\nEelWUCbXzrswKsnqibFh4WeM8Yp8ES2uTqdjpVLa2TDV6pLRLmEm507r8koiiHm52kwmFF0jN9Nr\n52UUSHdSk4AdubofxxkW/gkiyw/iMN0/ZuNqU1g2TLpzZ9feYZDX1ZG0H9KwXmf361uccY0aLPwT\nQtbWedE6GzrJ080wrN4ueV43aiIqUj8b9/vuoiX+t1ClEr/VxySTRviF/PvhIYSgYY9hFNjY2MDi\n4k5cu9YGsAfAFdRqB3H16gtYWFgozDmzZGNjA+vr61haWsp8PHmeu4jXHfa1veNwv+8uoVJ5B555\n5jPYtWvX0MY1agghQEQiyd9OZz0YJh/W19dRLi/h2rU91k/2oFRaxPr6euIP8cLCAs6ceQyHDh1E\nqbSI69ev4syZxwoh+oAcX15jyfPcRbzusK/tHYf/fXeaRX+AsMU/IuRpnRfFEmQmC37fpSONxc/C\nP0JcuLCGQ4cedFnn99xz97CHxTDMEGDhnyDYSmIYBmDhZxiGmTjSCP+mrAfDMAzDFBsWfsbHxsYG\nnnrqKWxsbAx7KAzD5AALP+PiwoU1LC7uxB13vBeLiztx4cLaUMbBkw/D5Af7+Jk+RSnoUtlL5fIS\nvvnNdc5eYhgN7ONnMkEViUnRB5xFYoNiY2MDhw49iGvX2vj61/8K1661cejQg2z5M0yGsPAzfZaW\npIUNXLF+cgXXr1/F0tLSwMZQhMmHYcYdFn6mjyqlr9UOotncj1rt4MBbOBRh8mGYcSdXH78Q4v0A\nHgTwLQB/TEQrmmPYx18whl0kxhXKDBNNIQu4hBAHABwB8CNE9C0hxCuI6Gua41j4GR/DnnwYpugU\nVfjXAHyEiP4i4jgWfoZhmJgUNatnB4AfEEJ8RgjRFkJ8d47XYhiGYQxJ1Y9fCPEkgBucPwJAAH7B\nOvdmInqzEOI2AL8H4GbdeT70oQ/1/3/gwAEcOHAgzbAYhmHGjkuXLuHSpUuZnCtPV8+fADhBRJ+2\nvv8igDcR0T96jmNXD8MwTEyK6ur5JIC3AIAQYgeAklf0GYZhmMGT59aLvwXgY0KI5wH8C4D7crwW\nwzAMYwj36mEYhhlBiurqYRiGYQoICz/DMMyEwcLPMAwzYbDwMwzDTBgs/AzDMBMGCz/DMMyEwcLP\nMAwzYbDwMwzDTBgs/AzDMBMGCz/DMMyEwcLPMAwzYbDwMwzDTBgs/CPAxsYGnnrqKWxsbAx7KAzD\njAEs/AXnwoU1LC7uxB13vBeLiztx4cLasIfEMMyIw22ZC8zGxgYWF3fi2rU2gD0ArqBWO4irV1/A\nwsLCsIfHMMwQ4bbMY8r6+jrK5SVI0QeAPSiVFrG+vj68QTEMM/Kw8BeYpaUlfPOb6wCuWD+5guvX\nr2JpaWl4g2IYZuRh4S8wCwsLOHPmMdRqB9Fs7ketdhBnzjzGbh6GYVKRm49fCHErgFMAqgCuA3iQ\niD6rOY59/BFsbGxgfX0dS0tLLPoMwwBI5+PPU/hbAE4S0Z8JId4G4OeI6KDmOBZ+hmGYmBQ1uPsd\nAHPW/+cBvJTjtRiGYRhD8rT4dwJoARDW1/cS0Zc1x7HFzzAME5OhuXqEEE8CuMH5IwAE4OcB3A6g\nTUSfFEL8BIAHiOgOzTlY+BmGYWJSVB//PxPRvOP7rxPRnOY4Onr0aP/7AwcO4MCBA7mMiWEYZlS5\ndOkSLl261P/+l37plwop/J+DzOT5tBDihwB8mIhu0xzHFj/DMExM0lj801kPxsG7ATwqhJgC8A0A\n78nxWgzDMIwh3KuHYRhmBClqOifDMAxTQFj4GYZhJgwWfoZhmAmDhZ9hGGbCYOFnGIaZMFj4GYZh\nJgwWfoZhmAmDhZ9hGGbCYOFnGIaZMFj4GYZhJgwWfoZhmAmDhZ9hGGbCYOFnGIaZMFj4GYZhJgwW\nfoZhmAmDhZ9hGGbCYOFnGIaZMFj4GYZhJgwWfoZhmAkjlfALIX5CCPG/hBDfFkLs9/zug0KIF4UQ\nnxdC/HC6YTIMwzBZkdbifx7AjwL4tPOHQohdAP4tgF0A3gbgMSFEok2BR51Lly4Newi5wvc32ozz\n/Y3zvaUllfAT0ReI6EUAXlF/B4CLRPQtIloH8CKA70lzrVFl3N98fH+jzTjf3zjfW1ry8vG/FsCX\nHd+/ZP2MYRiGGTLTUQcIIZ4EcIPzRwAIwM8T0X/Na2AMwzBMPggiSn8SIdoAPkBET1vfrwAgIjph\nff8pAEeJ6H9q/jb9ABiGYSYQIkoUO420+GPgHMATAM4JIX4d0sWzHUBH90dJB84wDMMkI2065zuF\nEF8G8GYAfySE+FMAIKIugN8D0AXwJwAepCyWFgzDMExqMnH1MAzDMKPDwCt3hRCbhRB/JoT4ghCi\nJYSY0xxzoxDiL4QQnxNCPC+EeGjQ44yLEOJOIcQLQoi/FkI8EnDMo1ZR27NCiL2DHmMaou5PCHGv\nEOI56+uyEGL3MMaZBJPXzjruNiHEdSHEjw1yfGkxfG8eEEI8YxVktgc9xjQYvDebQognrM/d80KI\ndw1hmIkQQpwRQnxVCHEl5Jj4ukJEA/0CcALAz1n/fwTAhzXHvArAXuv/DQBfALBz0GONcU+bAHwR\nwCKAEoBnveOFLGT7Y+v/bwLwmWGPO+P7ezOAOev/d47K/Zncm+O4/wbgjwD82LDHnfFrNwfgcwBe\na33/imGPO+P7+yCAX1H3BuAfAUwPe+yG9/f9APYCuBLw+0S6MoxePe8A8NvW/38bwDu9BxDRPxDR\ns9b/XwbweRS7DuB7ALxIRFeJ6DqAi5D36eQdAH4HAEhmN80JIW7AaBB5f0T0GSL6uvXtZ1Ds18uJ\nyWsHAO8H8AcAeoMcXAaY3N+9AD5ORC8BABF9bcBjTIPJ/RGAWev/swD+kYi+NcAxJoaILgP4p5BD\nEunKMIT/lUT0VUAKPIBXhh0shFiCnPF8qaAFwluw9hX4hW+Ui9pM7s/JzwD401xHlB2R9yaEeA2A\ndxLR4/BXqRcdk9duB4AtQoi2EOIpIcRPDWx06TG5v98E8AYhxN8BeA7AwwMa2yBIpCtZpnP2CSn6\n+gXN4YHRZSFEA9LKetiy/JmCI4Q4COCnIZeo48J/hnRLKkZN/KOYBrAfwFsA1AH8pRDiL4noi8Md\nVma8FcAzRPQWIcQ2AE8KIfZMsqbkIvxEdEfQ76xAxQ1E9FUhxKsQsHQWQkxDiv7vEtEf5jHODHkJ\nwE2O72+0fuY95nURxxQVk/uDEGIPgNMA7iSisOVpkTC5t+8GcNFqNPgKAG8TQlwnoicGNMY0mNzf\nVwB8jYi+AeAbQoj/DuBWSN950TG5v58G8CsAQER/I4T4WwA7AXx2ICPMl0S6MgxXzxMA3mX9/98D\nCBL1jwHoEtFvDGJQKXkKwHYhxKIQogzg30Hep5MnANwHAEKINwP4Z+XyGgEi708IcROAjwP4KSL6\nmyGMMSmR90ZEN1tfWyGNkQdHRPQBs/fmHwL4fiHElBBiBjJI+PkBjzMpJvd3FcDtAGD5v3cA+NJA\nR5kOgeBVZjJdGUKUeguAP4fM1PkzAPPWz18N4I+s/38fgG9DRuifAfA0pBU59Ch7yH3dad3TiwBW\nrJ89AOA9jmN+E9KKeg7A/mGPOcv7A/BRyGyJp63XrDPsMWf52jmO/RhGKKvH9P4A/CxkZs8VAO8f\n9pizvD9LW1rWvV0BcM+wxxzj3s4D+DsA/wLgf0OuXlLrChdwMQzDTBi89SLDMMyEwcLPMAwzYbDw\nMwzDTBgs/AzDMBMGCz/DMMyEwcLPMAwzYbDwMwzDTBgs/AzDMBPG/wcyufy1AJb8zgAAAABJRU5E\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1209a2470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(topicvals, socialvals)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('../results/social2sanstopicvals.tsv', mode = 'w', encoding = 'utf-8') as f:\n",
    "    f.write('genre1\\tgenre2\\tsocialprox\\ttopicsans\\n')\n",
    "    for idx, comp in enumerate(comparisons):\n",
    "        g1, g2 = comp\n",
    "        soc = socialvals[idx]\n",
    "        sans = topicvals[idx]\n",
    "        f.write(g1 + '\\t' + g2 + '\\t' + str(soc) + '\\t' + str(sans) + '\\n')\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-0.402762387982 -0.265904517423\n"
     ]
    }
   ],
   "source": [
    "def bootstrap(vec1, vec2):\n",
    "    assert len(vec1) == len(vec2)\n",
    "    n = len(vec1)\n",
    "    indices = []\n",
    "    for i in range(n):\n",
    "        indices.append(random.randrange(n))\n",
    "    bs1 = [vec1[x] for x in indices]\n",
    "    bs2 = [vec2[x] for x in indices]\n",
    "    return bs1, bs2\n",
    "\n",
    "def boot_sample(vec1, vec2):\n",
    "    corrs = []\n",
    "    for i in range(10000):\n",
    "        bs1, bs2 = bootstrap(vec1, vec2)\n",
    "        r = pearsonr(bs1, bs2)\n",
    "        corrs.append(r[0])\n",
    "    corrs.sort()\n",
    "    return corrs\n",
    "\n",
    "uncertainty = boot_sample(topicvals, socialvals)\n",
    "print(uncertainty[500], uncertainty[9500])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('../results/bootstrapped_topicsans_r.txt', mode = 'w', encoding = 'utf-8') as f:\n",
    "    for u in uncertainty:\n",
    "        f.write(str(u) + '\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.33661622873030217,\n",
       " 1.3203791853901284e-14,\n",
       " -0.4124366366514996,\n",
       " -0.25616438565897093)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## Careful reading about confidence intervals has led me to conclude that bootstrapped\n",
    "## results are not always reliable in this case. \n",
    "\n",
    "## I am relying instead on a function written by Zhiya Zuo, in this post:\n",
    "## https://zhiyzuo.github.io/Pearson-Correlation-CI-in-Python/\n",
    "\n",
    "# It matches results from cor.test in R.\n",
    "\n",
    "from scipy import stats\n",
    "\n",
    "def pearsonr_ci(x,y,alpha=0.05):\n",
    "    ''' calculate Pearson correlation along with the confidence interval using scipy and numpy\n",
    "    Parameters\n",
    "    ----------\n",
    "    x, y : iterable object such as a list or np.array\n",
    "      Input for correlation calculation\n",
    "    alpha : float\n",
    "      Significance level. 0.05 by default\n",
    "    Returns\n",
    "    -------\n",
    "    r : float\n",
    "      Pearson's correlation coefficient\n",
    "    pval : float\n",
    "      The corresponding p value\n",
    "    lo, hi : float\n",
    "      The lower and upper bound of confidence intervals\n",
    "    '''\n",
    "\n",
    "    r, p = stats.pearsonr(x,y)\n",
    "    r_z = np.arctanh(r)\n",
    "    se = 1/np.sqrt(x.size-3)\n",
    "    z = stats.norm.ppf(1-alpha/2)\n",
    "    lo_z, hi_z = r_z-z*se, r_z+z*se\n",
    "    lo, hi = np.tanh((lo_z, hi_z))\n",
    "    return r, p, lo, hi\n",
    "\n",
    "pearsonr_ci(np.array(topicvals), np.array(socialvals))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize topic similarity as a 2d map"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# NaNs are no good here\n",
    "\n",
    "for idx in sansmatrix.index:\n",
    "    sansmatrix.loc[idx, idx] = 0\n",
    "    \n",
    "scaler = MDS(metric = True, dissimilarity = 'precomputed')\n",
    "coordinates = scaler.fit_transform(sansmatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nXHf0a2WW5YLINUYBrioNfhtB4cHlvt9HxKIye/aXZJuLhnlkt/25ztSavbo5ADOz5U7JSK1D/h/X\nWBmh8bUm8Jey6yg6X6kg2tgHcoixqrNVDCDXmlyAmb3qeQjSzJYrpVnrgbn4+89HwZyOutm3tfJA\nWysVtNXVvvm+zlYxaO84ZvYq5AyYmS03lmzMu9bCdhrzNvwWWLGTlQq6WqvV2SoGZmaLOQAzs+XJ\n8Mx8jZmdN1dYCMMHs+QC2QFLv1JBR/d1toqBmVmV21CY2XIjM11jj80M2JjZ2az18OFw25kuejez\n/sQBmJktV7IGbMdSA9Zo1jp3uW9Ua2YDiwMwM1vuuDGvmfV3DsDMzMzMauYifDMzM7OaOQAzMzMz\nq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQAz\nMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7Oa\nOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMz\nM7OaOQAzMzMzq5kDMDMzM7OaOQAzMzMzq5kDMDMzM7OaOQCzfkXSHyUtkvShpvt3KPc/2sPjb1SO\ns0HPrtTMzKz7HIBZfxPAv4HPNN3/mXJ/T6mco2cHkYb0wrWYmdmrlAMw64+uAd4saWMASasC+wEX\nltt7SHpW0gqNB0haVdIsSe8ot78l6UlJMyQ9KulzZdd/lu8PS5op6cSy/whJ4yQ9JukZSVdIWrdy\n/EmSTpZ0u6T5wLOSQtJUSVc3rkXSbY1jmpmZtccBmPVHc4BLgU+X2wcAfwSeBoiIG4CXgb0rjzkQ\neCwi/iJpN+ATwPYRsTqwA/Dnst825fvmEbFaRHyr3L4WWAhsCWwEzAIua7quTwPrAT8ENgMuAm4A\nbgQkaQvgrcBPe/Lkzcxs+ecAzPqrccAhkgYDhwHnt7H905Xbn6rsMw8YCmwlaWhEPB8R9zQ9Xot/\nkLYF3gIcEREvRcQc4Hjg3U21YpcAGwPnRsS0cr69gfERMR+4AJgREU9Xjn2LpBPKz2tI+oWk5yW9\nKOm+SsbuFEkTJH2vbH9M0pdbXbD0Rkk3lOzfZEmnldenWtv2MUn/Kpm/GyS9pvL4o0o2cIakxyWd\n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\nmZlZP1AyRX1a9F+ZdXlRRDQv82M1cgBmZmZmVjMX4ZuZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZ\nWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGY\nmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnV\nzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZ\nmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0c\ngJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZ\nWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGY\nmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnV\nzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZ\nmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0c\ngJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZ\nWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGY\nmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnV\nzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZ\nmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0c\ngJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZWc0cgJmZmZnVzAGYmZmZ\nWc0cgJmZmZnV7P8DOzJ2G5Y/1l8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x121a04630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize = (10, 10))\n",
    "genres = sansmatrix.index.tolist()\n",
    "colors=np.linspace(0, 1, 7)\n",
    "ax.scatter(coordinates[ :, 0], coordinates[ : , 1], alpha = 0.4)\n",
    "#ax.set_xlim((-0.65, 1.35))\n",
    "# ax.set_ylim((-1.9, 2.1))\n",
    "for i in range(len(genres)):\n",
    "    thisx = coordinates[i, 0]\n",
    "    thisy = coordinates[i, 1]\n",
    "    name = genres[i]\n",
    "    ax.annotate(name, (thisx, thisy), fontsize = 13)\n",
    "plt.axis('off')\n",
    "# plt.savefig('new2detectiveMDS.png', bbox_inches = 'tight')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Write the map to file\n",
    "\n",
    "with open('../results/sanstopicmap.tsv', mode = 'w', encoding = 'utf-8') as f:\n",
    "    f.write('genre\\tmeandate\\txcord\\tycord\\n')\n",
    "    for i, genre in enumerate(genres):\n",
    "        xcord = str(coordinates[i, 0])\n",
    "        ycord = str(coordinates[i, 1])\n",
    "        meandate = str(genrenamedf.loc[genrenamedf.genre == genre, 'meandate'].values[0])\n",
    "        f.write(genre + '\\t' + meandate + '\\t' + xcord + '\\t' + ycord + '\\n')\n",
    "        \n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cosine distances with genre overlap"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "withoverlaps = dict()\n",
    "\n",
    "for g1 in genrenames:\n",
    "    if g1.startswith('random') or g1.endswith(' B'):\n",
    "        continue\n",
    "        \n",
    "        # We don't have social ground truth about the random sets\n",
    "        # and the B genres are only there as self-comparisons, not in\n",
    "        # their own right.\n",
    "        \n",
    "    withoverlaps[g1] = dict()\n",
    "    \n",
    "    for g2 in genrenames:\n",
    "        \n",
    "        if g2.startswith('random') or g2.endswith(' B'):\n",
    "            continue\n",
    "        elif g1 == g2:\n",
    "            actualg2 = g1 + ' B'\n",
    "            if actualg2 not in genrenames:\n",
    "                withoverlaps[g1][g2] = float('nan')\n",
    "                continue\n",
    "            else:\n",
    "                selfcomparison = spatial.distance.cosine(topic_vectors[g1]['self'], topic_vectors[actualg2]['self'])\n",
    "                withoverlaps[g1][g2] = selfcomparison\n",
    "        \n",
    "        else:\n",
    "            straightforward = spatial.distance.cosine(topic_vectors[g1]['self'], topic_vectors[g2]['self'])\n",
    "            withoverlaps[g1][g2] = straightforward"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Adventure</th>\n",
       "      <th>Bildungsroman</th>\n",
       "      <th>Biographical</th>\n",
       "      <th>Christian</th>\n",
       "      <th>Domestic</th>\n",
       "      <th>Fantasy</th>\n",
       "      <th>Historical</th>\n",
       "      <th>Horror</th>\n",
       "      <th>Humor</th>\n",
       "      <th>Juvenile</th>\n",
       "      <th>...</th>\n",
       "      <th>Subj: Humor</th>\n",
       "      <th>Subj: Juvenile</th>\n",
       "      <th>Subj: Man-woman</th>\n",
       "      <th>Subj: SF, American</th>\n",
       "      <th>Subj: SF, Other</th>\n",
       "      <th>Subj: Short stories, American</th>\n",
       "      <th>Subj: Short stories, Other</th>\n",
       "      <th>Suspense</th>\n",
       "      <th>War</th>\n",
       "      <th>Western</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Adventure</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.238958</td>\n",
       "      <td>0.259606</td>\n",
       "      <td>0.269559</td>\n",
       "      <td>0.279976</td>\n",
       "      <td>0.233101</td>\n",
       "      <td>0.210753</td>\n",
       "      <td>0.137807</td>\n",
       "      <td>0.235557</td>\n",
       "      <td>0.554802</td>\n",
       "      <td>...</td>\n",
       "      <td>0.458997</td>\n",
       "      <td>0.490340</td>\n",
       "      <td>0.285888</td>\n",
       "      <td>0.353699</td>\n",
       "      <td>0.404589</td>\n",
       "      <td>0.207870</td>\n",
       "      <td>0.337010</td>\n",
       "      <td>0.115638</td>\n",
       "      <td>0.221977</td>\n",
       "      <td>0.388602</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bildungsroman</th>\n",
       "      <td>0.238958</td>\n",
       "      <td>0.018266</td>\n",
       "      <td>0.244011</td>\n",
       "      <td>0.214107</td>\n",
       "      <td>0.024661</td>\n",
       "      <td>0.395861</td>\n",
       "      <td>0.251382</td>\n",
       "      <td>0.218844</td>\n",
       "      <td>0.121259</td>\n",
       "      <td>0.574530</td>\n",
       "      <td>...</td>\n",
       "      <td>0.463543</td>\n",
       "      <td>0.481658</td>\n",
       "      <td>0.080829</td>\n",
       "      <td>0.517385</td>\n",
       "      <td>0.603264</td>\n",
       "      <td>0.056788</td>\n",
       "      <td>0.234800</td>\n",
       "      <td>0.261793</td>\n",
       "      <td>0.419771</td>\n",
       "      <td>0.522048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Biographical</th>\n",
       "      <td>0.259606</td>\n",
       "      <td>0.244011</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.155190</td>\n",
       "      <td>0.313741</td>\n",
       "      <td>0.151726</td>\n",
       "      <td>0.029081</td>\n",
       "      <td>0.269831</td>\n",
       "      <td>0.326728</td>\n",
       "      <td>0.437317</td>\n",
       "      <td>...</td>\n",
       "      <td>0.457251</td>\n",
       "      <td>0.414279</td>\n",
       "      <td>0.270289</td>\n",
       "      <td>0.498245</td>\n",
       "      <td>0.550649</td>\n",
       "      <td>0.236074</td>\n",
       "      <td>0.164126</td>\n",
       "      <td>0.424048</td>\n",
       "      <td>0.279196</td>\n",
       "      <td>0.405448</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Christian</th>\n",
       "      <td>0.269559</td>\n",
       "      <td>0.214107</td>\n",
       "      <td>0.155190</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.281406</td>\n",
       "      <td>0.257975</td>\n",
       "      <td>0.123627</td>\n",
       "      <td>0.264677</td>\n",
       "      <td>0.257135</td>\n",
       "      <td>0.411899</td>\n",
       "      <td>...</td>\n",
       "      <td>0.431184</td>\n",
       "      <td>0.414697</td>\n",
       "      <td>0.158216</td>\n",
       "      <td>0.549132</td>\n",
       "      <td>0.591069</td>\n",
       "      <td>0.238174</td>\n",
       "      <td>0.356537</td>\n",
       "      <td>0.305192</td>\n",
       "      <td>0.389795</td>\n",
       "      <td>0.482500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Domestic</th>\n",
       "      <td>0.279976</td>\n",
       "      <td>0.024661</td>\n",
       "      <td>0.313741</td>\n",
       "      <td>0.281406</td>\n",
       "      <td>0.011518</td>\n",
       "      <td>0.472698</td>\n",
       "      <td>0.319074</td>\n",
       "      <td>0.274015</td>\n",
       "      <td>0.141512</td>\n",
       "      <td>0.716054</td>\n",
       "      <td>...</td>\n",
       "      <td>0.575584</td>\n",
       "      <td>0.584091</td>\n",
       "      <td>0.108710</td>\n",
       "      <td>0.548539</td>\n",
       "      <td>0.636083</td>\n",
       "      <td>0.109499</td>\n",
       "      <td>0.287097</td>\n",
       "      <td>0.227193</td>\n",
       "      <td>0.471072</td>\n",
       "      <td>0.554101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fantasy</th>\n",
       "      <td>0.233101</td>\n",
       "      <td>0.395861</td>\n",
       "      <td>0.151726</td>\n",
       "      <td>0.257975</td>\n",
       "      <td>0.472698</td>\n",
       "      <td>0.008561</td>\n",
       "      <td>0.133928</td>\n",
       "      <td>0.124591</td>\n",
       "      <td>0.442504</td>\n",
       "      <td>0.569797</td>\n",
       "      <td>...</td>\n",
       "      <td>0.607950</td>\n",
       "      <td>0.527034</td>\n",
       "      <td>0.411482</td>\n",
       "      <td>0.333588</td>\n",
       "      <td>0.383953</td>\n",
       "      <td>0.351549</td>\n",
       "      <td>0.387953</td>\n",
       "      <td>0.412226</td>\n",
       "      <td>0.377413</td>\n",
       "      <td>0.405356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Historical</th>\n",
       "      <td>0.210753</td>\n",
       "      <td>0.251382</td>\n",
       "      <td>0.029081</td>\n",
       "      <td>0.123627</td>\n",
       "      <td>0.319074</td>\n",
       "      <td>0.133928</td>\n",
       "      <td>0.021335</td>\n",
       "      <td>0.234327</td>\n",
       "      <td>0.350106</td>\n",
       "      <td>0.354764</td>\n",
       "      <td>...</td>\n",
       "      <td>0.425803</td>\n",
       "      <td>0.330589</td>\n",
       "      <td>0.267280</td>\n",
       "      <td>0.482939</td>\n",
       "      <td>0.526918</td>\n",
       "      <td>0.213276</td>\n",
       "      <td>0.214752</td>\n",
       "      <td>0.364295</td>\n",
       "      <td>0.228321</td>\n",
       "      <td>0.293159</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Horror</th>\n",
       "      <td>0.137807</td>\n",
       "      <td>0.218844</td>\n",
       "      <td>0.269831</td>\n",
       "      <td>0.264677</td>\n",
       "      <td>0.274015</td>\n",
       "      <td>0.124591</td>\n",
       "      <td>0.234327</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.238026</td>\n",
       "      <td>0.614025</td>\n",
       "      <td>...</td>\n",
       "      <td>0.526124</td>\n",
       "      <td>0.575462</td>\n",
       "      <td>0.225115</td>\n",
       "      <td>0.338066</td>\n",
       "      <td>0.398726</td>\n",
       "      <td>0.204503</td>\n",
       "      <td>0.344361</td>\n",
       "      <td>0.220743</td>\n",
       "      <td>0.381992</td>\n",
       "      <td>0.448871</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Humor</th>\n",
       "      <td>0.235557</td>\n",
       "      <td>0.121259</td>\n",
       "      <td>0.326728</td>\n",
       "      <td>0.257135</td>\n",
       "      <td>0.141512</td>\n",
       "      <td>0.442504</td>\n",
       "      <td>0.350106</td>\n",
       "      <td>0.238026</td>\n",
       "      <td>0.007469</td>\n",
       "      <td>0.679743</td>\n",
       "      <td>...</td>\n",
       "      <td>0.362184</td>\n",
       "      <td>0.634977</td>\n",
       "      <td>0.093717</td>\n",
       "      <td>0.504867</td>\n",
       "      <td>0.575267</td>\n",
       "      <td>0.192149</td>\n",
       "      <td>0.319037</td>\n",
       "      <td>0.209047</td>\n",
       "      <td>0.474752</td>\n",
       "      <td>0.611160</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Juvenile</th>\n",
       "      <td>0.554802</td>\n",
       "      <td>0.574530</td>\n",
       "      <td>0.437317</td>\n",
       "      <td>0.411899</td>\n",
       "      <td>0.716054</td>\n",
       "      <td>0.569797</td>\n",
       "      <td>0.354764</td>\n",
       "      <td>0.614025</td>\n",
       "      <td>0.679743</td>\n",
       "      <td>0.047641</td>\n",
       "      <td>...</td>\n",
       "      <td>0.285322</td>\n",
       "      <td>0.062316</td>\n",
       "      <td>0.580487</td>\n",
       "      <td>0.765662</td>\n",
       "      <td>0.744469</td>\n",
       "      <td>0.442398</td>\n",
       "      <td>0.449006</td>\n",
       "      <td>0.784038</td>\n",
       "      <td>0.393613</td>\n",
       "      <td>0.494705</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Love</th>\n",
       "      <td>0.215829</td>\n",
       "      <td>0.048459</td>\n",
       "      <td>0.238234</td>\n",
       "      <td>0.157725</td>\n",
       "      <td>0.063070</td>\n",
       "      <td>0.369408</td>\n",
       "      <td>0.230030</td>\n",
       "      <td>0.184851</td>\n",
       "      <td>0.081834</td>\n",
       "      <td>0.587296</td>\n",
       "      <td>...</td>\n",
       "      <td>0.484096</td>\n",
       "      <td>0.524795</td>\n",
       "      <td>0.018254</td>\n",
       "      <td>0.525186</td>\n",
       "      <td>0.595271</td>\n",
       "      <td>0.120800</td>\n",
       "      <td>0.237452</td>\n",
       "      <td>0.175530</td>\n",
       "      <td>0.405818</td>\n",
       "      <td>0.497120</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mystery</th>\n",
       "      <td>0.267321</td>\n",
       "      <td>0.302780</td>\n",
       "      <td>0.471654</td>\n",
       "      <td>0.299231</td>\n",
       "      <td>0.264093</td>\n",
       "      <td>0.479129</td>\n",
       "      <td>0.378274</td>\n",
       "      <td>0.278308</td>\n",
       "      <td>0.248281</td>\n",
       "      <td>0.679824</td>\n",
       "      <td>...</td>\n",
       "      <td>0.493707</td>\n",
       "      <td>0.633864</td>\n",
       "      <td>0.217626</td>\n",
       "      <td>0.559048</td>\n",
       "      <td>0.581436</td>\n",
       "      <td>0.301230</td>\n",
       "      <td>0.476156</td>\n",
       "      <td>0.091146</td>\n",
       "      <td>0.477566</td>\n",
       "      <td>0.552993</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Novel</th>\n",
       "      <td>0.148080</td>\n",
       "      <td>0.130250</td>\n",
       "      <td>0.119431</td>\n",
       "      <td>0.120239</td>\n",
       "      <td>0.179404</td>\n",
       "      <td>0.217614</td>\n",
       "      <td>0.116099</td>\n",
       "      <td>0.134041</td>\n",
       "      <td>0.116934</td>\n",
       "      <td>0.474543</td>\n",
       "      <td>...</td>\n",
       "      <td>0.350883</td>\n",
       "      <td>0.461137</td>\n",
       "      <td>0.081395</td>\n",
       "      <td>0.419856</td>\n",
       "      <td>0.466292</td>\n",
       "      <td>0.134760</td>\n",
       "      <td>0.153723</td>\n",
       "      <td>0.186304</td>\n",
       "      <td>0.292006</td>\n",
       "      <td>0.460582</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Political</th>\n",
       "      <td>0.177617</td>\n",
       "      <td>0.280409</td>\n",
       "      <td>0.282651</td>\n",
       "      <td>0.257774</td>\n",
       "      <td>0.303735</td>\n",
       "      <td>0.431614</td>\n",
       "      <td>0.308185</td>\n",
       "      <td>0.332482</td>\n",
       "      <td>0.154300</td>\n",
       "      <td>0.691145</td>\n",
       "      <td>...</td>\n",
       "      <td>0.434833</td>\n",
       "      <td>0.676822</td>\n",
       "      <td>0.221569</td>\n",
       "      <td>0.555919</td>\n",
       "      <td>0.595001</td>\n",
       "      <td>0.313517</td>\n",
       "      <td>0.336636</td>\n",
       "      <td>0.167963</td>\n",
       "      <td>0.343339</td>\n",
       "      <td>0.635047</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Psychological</th>\n",
       "      <td>0.222814</td>\n",
       "      <td>0.054127</td>\n",
       "      <td>0.311998</td>\n",
       "      <td>0.246153</td>\n",
       "      <td>0.039780</td>\n",
       "      <td>0.422282</td>\n",
       "      <td>0.316938</td>\n",
       "      <td>0.195711</td>\n",
       "      <td>0.056790</td>\n",
       "      <td>0.721850</td>\n",
       "      <td>...</td>\n",
       "      <td>0.522626</td>\n",
       "      <td>0.627119</td>\n",
       "      <td>0.060566</td>\n",
       "      <td>0.497222</td>\n",
       "      <td>0.572098</td>\n",
       "      <td>0.131778</td>\n",
       "      <td>0.285306</td>\n",
       "      <td>0.155095</td>\n",
       "      <td>0.447285</td>\n",
       "      <td>0.556617</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SF</th>\n",
       "      <td>0.257704</td>\n",
       "      <td>0.526782</td>\n",
       "      <td>0.458230</td>\n",
       "      <td>0.493356</td>\n",
       "      <td>0.556327</td>\n",
       "      <td>0.299672</td>\n",
       "      <td>0.438812</td>\n",
       "      <td>0.307945</td>\n",
       "      <td>0.460853</td>\n",
       "      <td>0.765409</td>\n",
       "      <td>...</td>\n",
       "      <td>0.655510</td>\n",
       "      <td>0.712547</td>\n",
       "      <td>0.512326</td>\n",
       "      <td>0.032036</td>\n",
       "      <td>0.039218</td>\n",
       "      <td>0.462701</td>\n",
       "      <td>0.543565</td>\n",
       "      <td>0.385281</td>\n",
       "      <td>0.460904</td>\n",
       "      <td>0.619393</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Short stories</th>\n",
       "      <td>0.184959</td>\n",
       "      <td>0.075284</td>\n",
       "      <td>0.142078</td>\n",
       "      <td>0.236368</td>\n",
       "      <td>0.122013</td>\n",
       "      <td>0.245585</td>\n",
       "      <td>0.165213</td>\n",
       "      <td>0.145447</td>\n",
       "      <td>0.149198</td>\n",
       "      <td>0.498051</td>\n",
       "      <td>...</td>\n",
       "      <td>0.393083</td>\n",
       "      <td>0.427847</td>\n",
       "      <td>0.133566</td>\n",
       "      <td>0.409146</td>\n",
       "      <td>0.474549</td>\n",
       "      <td>0.062271</td>\n",
       "      <td>0.089370</td>\n",
       "      <td>0.283967</td>\n",
       "      <td>0.346206</td>\n",
       "      <td>0.458005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Detective</th>\n",
       "      <td>0.332801</td>\n",
       "      <td>0.373855</td>\n",
       "      <td>0.507089</td>\n",
       "      <td>0.346209</td>\n",
       "      <td>0.367199</td>\n",
       "      <td>0.506302</td>\n",
       "      <td>0.398575</td>\n",
       "      <td>0.313738</td>\n",
       "      <td>0.334314</td>\n",
       "      <td>0.547745</td>\n",
       "      <td>...</td>\n",
       "      <td>0.386516</td>\n",
       "      <td>0.554565</td>\n",
       "      <td>0.291441</td>\n",
       "      <td>0.585946</td>\n",
       "      <td>0.587753</td>\n",
       "      <td>0.306963</td>\n",
       "      <td>0.456753</td>\n",
       "      <td>0.200179</td>\n",
       "      <td>0.511908</td>\n",
       "      <td>0.559724</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Fairy tales</th>\n",
       "      <td>0.841187</td>\n",
       "      <td>0.857988</td>\n",
       "      <td>0.776603</td>\n",
       "      <td>0.812551</td>\n",
       "      <td>0.914251</td>\n",
       "      <td>0.746674</td>\n",
       "      <td>0.778103</td>\n",
       "      <td>0.838016</td>\n",
       "      <td>0.898516</td>\n",
       "      <td>0.495150</td>\n",
       "      <td>...</td>\n",
       "      <td>0.793344</td>\n",
       "      <td>0.360840</td>\n",
       "      <td>0.883210</td>\n",
       "      <td>0.895691</td>\n",
       "      <td>0.889060</td>\n",
       "      <td>0.830778</td>\n",
       "      <td>0.760717</td>\n",
       "      <td>0.934237</td>\n",
       "      <td>0.859850</td>\n",
       "      <td>0.881942</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Fantasy</th>\n",
       "      <td>0.200439</td>\n",
       "      <td>0.284177</td>\n",
       "      <td>0.235990</td>\n",
       "      <td>0.288805</td>\n",
       "      <td>0.368746</td>\n",
       "      <td>0.098824</td>\n",
       "      <td>0.208058</td>\n",
       "      <td>0.090595</td>\n",
       "      <td>0.355350</td>\n",
       "      <td>0.451206</td>\n",
       "      <td>...</td>\n",
       "      <td>0.476541</td>\n",
       "      <td>0.388502</td>\n",
       "      <td>0.339118</td>\n",
       "      <td>0.242769</td>\n",
       "      <td>0.281902</td>\n",
       "      <td>0.186342</td>\n",
       "      <td>0.306997</td>\n",
       "      <td>0.383206</td>\n",
       "      <td>0.387575</td>\n",
       "      <td>0.434119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: History</th>\n",
       "      <td>0.416123</td>\n",
       "      <td>0.533086</td>\n",
       "      <td>0.260702</td>\n",
       "      <td>0.328970</td>\n",
       "      <td>0.647541</td>\n",
       "      <td>0.398244</td>\n",
       "      <td>0.223434</td>\n",
       "      <td>0.479005</td>\n",
       "      <td>0.612750</td>\n",
       "      <td>0.186701</td>\n",
       "      <td>...</td>\n",
       "      <td>0.420043</td>\n",
       "      <td>0.272428</td>\n",
       "      <td>0.555887</td>\n",
       "      <td>0.673623</td>\n",
       "      <td>0.664257</td>\n",
       "      <td>0.452634</td>\n",
       "      <td>0.398114</td>\n",
       "      <td>0.659533</td>\n",
       "      <td>0.190870</td>\n",
       "      <td>0.517190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Horror</th>\n",
       "      <td>0.284775</td>\n",
       "      <td>0.360022</td>\n",
       "      <td>0.345457</td>\n",
       "      <td>0.355280</td>\n",
       "      <td>0.466544</td>\n",
       "      <td>0.230795</td>\n",
       "      <td>0.300486</td>\n",
       "      <td>0.142266</td>\n",
       "      <td>0.442463</td>\n",
       "      <td>0.421674</td>\n",
       "      <td>...</td>\n",
       "      <td>0.446464</td>\n",
       "      <td>0.453734</td>\n",
       "      <td>0.371221</td>\n",
       "      <td>0.384428</td>\n",
       "      <td>0.398407</td>\n",
       "      <td>0.207324</td>\n",
       "      <td>0.297744</td>\n",
       "      <td>0.458449</td>\n",
       "      <td>0.431080</td>\n",
       "      <td>0.466548</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Humor</th>\n",
       "      <td>0.458997</td>\n",
       "      <td>0.463543</td>\n",
       "      <td>0.457251</td>\n",
       "      <td>0.431184</td>\n",
       "      <td>0.575584</td>\n",
       "      <td>0.607950</td>\n",
       "      <td>0.425803</td>\n",
       "      <td>0.526124</td>\n",
       "      <td>0.362184</td>\n",
       "      <td>0.285322</td>\n",
       "      <td>...</td>\n",
       "      <td>0.015612</td>\n",
       "      <td>0.387291</td>\n",
       "      <td>0.467973</td>\n",
       "      <td>0.678620</td>\n",
       "      <td>0.686086</td>\n",
       "      <td>0.345012</td>\n",
       "      <td>0.410243</td>\n",
       "      <td>0.607409</td>\n",
       "      <td>0.541691</td>\n",
       "      <td>0.597331</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Juvenile</th>\n",
       "      <td>0.490340</td>\n",
       "      <td>0.481658</td>\n",
       "      <td>0.414279</td>\n",
       "      <td>0.414697</td>\n",
       "      <td>0.584091</td>\n",
       "      <td>0.527034</td>\n",
       "      <td>0.330589</td>\n",
       "      <td>0.575462</td>\n",
       "      <td>0.634977</td>\n",
       "      <td>0.062316</td>\n",
       "      <td>...</td>\n",
       "      <td>0.387291</td>\n",
       "      <td>0.009033</td>\n",
       "      <td>0.551980</td>\n",
       "      <td>0.696180</td>\n",
       "      <td>0.697198</td>\n",
       "      <td>0.378784</td>\n",
       "      <td>0.441901</td>\n",
       "      <td>0.700271</td>\n",
       "      <td>0.397538</td>\n",
       "      <td>0.399995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Man-woman</th>\n",
       "      <td>0.285888</td>\n",
       "      <td>0.080829</td>\n",
       "      <td>0.270289</td>\n",
       "      <td>0.158216</td>\n",
       "      <td>0.108710</td>\n",
       "      <td>0.411482</td>\n",
       "      <td>0.267280</td>\n",
       "      <td>0.225115</td>\n",
       "      <td>0.093717</td>\n",
       "      <td>0.580487</td>\n",
       "      <td>...</td>\n",
       "      <td>0.467973</td>\n",
       "      <td>0.551980</td>\n",
       "      <td>0.008946</td>\n",
       "      <td>0.542238</td>\n",
       "      <td>0.603350</td>\n",
       "      <td>0.154236</td>\n",
       "      <td>0.267602</td>\n",
       "      <td>0.227118</td>\n",
       "      <td>0.450343</td>\n",
       "      <td>0.566770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: SF, American</th>\n",
       "      <td>0.353699</td>\n",
       "      <td>0.517385</td>\n",
       "      <td>0.498245</td>\n",
       "      <td>0.549132</td>\n",
       "      <td>0.548539</td>\n",
       "      <td>0.333588</td>\n",
       "      <td>0.482939</td>\n",
       "      <td>0.338066</td>\n",
       "      <td>0.504867</td>\n",
       "      <td>0.765662</td>\n",
       "      <td>...</td>\n",
       "      <td>0.678620</td>\n",
       "      <td>0.696180</td>\n",
       "      <td>0.542238</td>\n",
       "      <td>0.008973</td>\n",
       "      <td>0.010150</td>\n",
       "      <td>0.434280</td>\n",
       "      <td>0.559454</td>\n",
       "      <td>0.507068</td>\n",
       "      <td>0.545793</td>\n",
       "      <td>0.614310</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: SF, Other</th>\n",
       "      <td>0.404589</td>\n",
       "      <td>0.603264</td>\n",
       "      <td>0.550649</td>\n",
       "      <td>0.591069</td>\n",
       "      <td>0.636083</td>\n",
       "      <td>0.383953</td>\n",
       "      <td>0.526918</td>\n",
       "      <td>0.398726</td>\n",
       "      <td>0.575267</td>\n",
       "      <td>0.744469</td>\n",
       "      <td>...</td>\n",
       "      <td>0.686086</td>\n",
       "      <td>0.697198</td>\n",
       "      <td>0.603350</td>\n",
       "      <td>0.010150</td>\n",
       "      <td>0.004930</td>\n",
       "      <td>0.496991</td>\n",
       "      <td>0.592366</td>\n",
       "      <td>0.555465</td>\n",
       "      <td>0.561721</td>\n",
       "      <td>0.646122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Short stories, American</th>\n",
       "      <td>0.207870</td>\n",
       "      <td>0.056788</td>\n",
       "      <td>0.236074</td>\n",
       "      <td>0.238174</td>\n",
       "      <td>0.109499</td>\n",
       "      <td>0.351549</td>\n",
       "      <td>0.213276</td>\n",
       "      <td>0.204503</td>\n",
       "      <td>0.192149</td>\n",
       "      <td>0.442398</td>\n",
       "      <td>...</td>\n",
       "      <td>0.345012</td>\n",
       "      <td>0.378784</td>\n",
       "      <td>0.154236</td>\n",
       "      <td>0.434280</td>\n",
       "      <td>0.496991</td>\n",
       "      <td>0.006597</td>\n",
       "      <td>0.191764</td>\n",
       "      <td>0.310424</td>\n",
       "      <td>0.377393</td>\n",
       "      <td>0.406797</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Short stories, Other</th>\n",
       "      <td>0.337010</td>\n",
       "      <td>0.234800</td>\n",
       "      <td>0.164126</td>\n",
       "      <td>0.356537</td>\n",
       "      <td>0.287097</td>\n",
       "      <td>0.387953</td>\n",
       "      <td>0.214752</td>\n",
       "      <td>0.344361</td>\n",
       "      <td>0.319037</td>\n",
       "      <td>0.449006</td>\n",
       "      <td>...</td>\n",
       "      <td>0.410243</td>\n",
       "      <td>0.441901</td>\n",
       "      <td>0.267602</td>\n",
       "      <td>0.559454</td>\n",
       "      <td>0.592366</td>\n",
       "      <td>0.191764</td>\n",
       "      <td>0.008164</td>\n",
       "      <td>0.466334</td>\n",
       "      <td>0.354288</td>\n",
       "      <td>0.524258</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Suspense</th>\n",
       "      <td>0.115638</td>\n",
       "      <td>0.261793</td>\n",
       "      <td>0.424048</td>\n",
       "      <td>0.305192</td>\n",
       "      <td>0.227193</td>\n",
       "      <td>0.412226</td>\n",
       "      <td>0.364295</td>\n",
       "      <td>0.220743</td>\n",
       "      <td>0.209047</td>\n",
       "      <td>0.784038</td>\n",
       "      <td>...</td>\n",
       "      <td>0.607409</td>\n",
       "      <td>0.700271</td>\n",
       "      <td>0.227118</td>\n",
       "      <td>0.507068</td>\n",
       "      <td>0.555465</td>\n",
       "      <td>0.310424</td>\n",
       "      <td>0.466334</td>\n",
       "      <td>0.010804</td>\n",
       "      <td>0.386272</td>\n",
       "      <td>0.565129</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>War</th>\n",
       "      <td>0.221977</td>\n",
       "      <td>0.419771</td>\n",
       "      <td>0.279196</td>\n",
       "      <td>0.389795</td>\n",
       "      <td>0.471072</td>\n",
       "      <td>0.377413</td>\n",
       "      <td>0.228321</td>\n",
       "      <td>0.381992</td>\n",
       "      <td>0.474752</td>\n",
       "      <td>0.393613</td>\n",
       "      <td>...</td>\n",
       "      <td>0.541691</td>\n",
       "      <td>0.397538</td>\n",
       "      <td>0.450343</td>\n",
       "      <td>0.545793</td>\n",
       "      <td>0.561721</td>\n",
       "      <td>0.377393</td>\n",
       "      <td>0.354288</td>\n",
       "      <td>0.386272</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.496393</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Western</th>\n",
       "      <td>0.388602</td>\n",
       "      <td>0.522048</td>\n",
       "      <td>0.405448</td>\n",
       "      <td>0.482500</td>\n",
       "      <td>0.554101</td>\n",
       "      <td>0.405356</td>\n",
       "      <td>0.293159</td>\n",
       "      <td>0.448871</td>\n",
       "      <td>0.611160</td>\n",
       "      <td>0.494705</td>\n",
       "      <td>...</td>\n",
       "      <td>0.597331</td>\n",
       "      <td>0.399995</td>\n",
       "      <td>0.566770</td>\n",
       "      <td>0.614310</td>\n",
       "      <td>0.646122</td>\n",
       "      <td>0.406797</td>\n",
       "      <td>0.524258</td>\n",
       "      <td>0.565129</td>\n",
       "      <td>0.496393</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>32 rows × 32 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Adventure  Bildungsroman  Biographical  \\\n",
       "Adventure                            NaN       0.238958      0.259606   \n",
       "Bildungsroman                   0.238958       0.018266      0.244011   \n",
       "Biographical                    0.259606       0.244011           NaN   \n",
       "Christian                       0.269559       0.214107      0.155190   \n",
       "Domestic                        0.279976       0.024661      0.313741   \n",
       "Fantasy                         0.233101       0.395861      0.151726   \n",
       "Historical                      0.210753       0.251382      0.029081   \n",
       "Horror                          0.137807       0.218844      0.269831   \n",
       "Humor                           0.235557       0.121259      0.326728   \n",
       "Juvenile                        0.554802       0.574530      0.437317   \n",
       "Love                            0.215829       0.048459      0.238234   \n",
       "Mystery                         0.267321       0.302780      0.471654   \n",
       "Novel                           0.148080       0.130250      0.119431   \n",
       "Political                       0.177617       0.280409      0.282651   \n",
       "Psychological                   0.222814       0.054127      0.311998   \n",
       "SF                              0.257704       0.526782      0.458230   \n",
       "Short stories                   0.184959       0.075284      0.142078   \n",
       "Subj: Detective                 0.332801       0.373855      0.507089   \n",
       "Subj: Fairy tales               0.841187       0.857988      0.776603   \n",
       "Subj: Fantasy                   0.200439       0.284177      0.235990   \n",
       "Subj: History                   0.416123       0.533086      0.260702   \n",
       "Subj: Horror                    0.284775       0.360022      0.345457   \n",
       "Subj: Humor                     0.458997       0.463543      0.457251   \n",
       "Subj: Juvenile                  0.490340       0.481658      0.414279   \n",
       "Subj: Man-woman                 0.285888       0.080829      0.270289   \n",
       "Subj: SF, American              0.353699       0.517385      0.498245   \n",
       "Subj: SF, Other                 0.404589       0.603264      0.550649   \n",
       "Subj: Short stories, American   0.207870       0.056788      0.236074   \n",
       "Subj: Short stories, Other      0.337010       0.234800      0.164126   \n",
       "Suspense                        0.115638       0.261793      0.424048   \n",
       "War                             0.221977       0.419771      0.279196   \n",
       "Western                         0.388602       0.522048      0.405448   \n",
       "\n",
       "                               Christian  Domestic   Fantasy  Historical  \\\n",
       "Adventure                       0.269559  0.279976  0.233101    0.210753   \n",
       "Bildungsroman                   0.214107  0.024661  0.395861    0.251382   \n",
       "Biographical                    0.155190  0.313741  0.151726    0.029081   \n",
       "Christian                            NaN  0.281406  0.257975    0.123627   \n",
       "Domestic                        0.281406  0.011518  0.472698    0.319074   \n",
       "Fantasy                         0.257975  0.472698  0.008561    0.133928   \n",
       "Historical                      0.123627  0.319074  0.133928    0.021335   \n",
       "Horror                          0.264677  0.274015  0.124591    0.234327   \n",
       "Humor                           0.257135  0.141512  0.442504    0.350106   \n",
       "Juvenile                        0.411899  0.716054  0.569797    0.354764   \n",
       "Love                            0.157725  0.063070  0.369408    0.230030   \n",
       "Mystery                         0.299231  0.264093  0.479129    0.378274   \n",
       "Novel                           0.120239  0.179404  0.217614    0.116099   \n",
       "Political                       0.257774  0.303735  0.431614    0.308185   \n",
       "Psychological                   0.246153  0.039780  0.422282    0.316938   \n",
       "SF                              0.493356  0.556327  0.299672    0.438812   \n",
       "Short stories                   0.236368  0.122013  0.245585    0.165213   \n",
       "Subj: Detective                 0.346209  0.367199  0.506302    0.398575   \n",
       "Subj: Fairy tales               0.812551  0.914251  0.746674    0.778103   \n",
       "Subj: Fantasy                   0.288805  0.368746  0.098824    0.208058   \n",
       "Subj: History                   0.328970  0.647541  0.398244    0.223434   \n",
       "Subj: Horror                    0.355280  0.466544  0.230795    0.300486   \n",
       "Subj: Humor                     0.431184  0.575584  0.607950    0.425803   \n",
       "Subj: Juvenile                  0.414697  0.584091  0.527034    0.330589   \n",
       "Subj: Man-woman                 0.158216  0.108710  0.411482    0.267280   \n",
       "Subj: SF, American              0.549132  0.548539  0.333588    0.482939   \n",
       "Subj: SF, Other                 0.591069  0.636083  0.383953    0.526918   \n",
       "Subj: Short stories, American   0.238174  0.109499  0.351549    0.213276   \n",
       "Subj: Short stories, Other      0.356537  0.287097  0.387953    0.214752   \n",
       "Suspense                        0.305192  0.227193  0.412226    0.364295   \n",
       "War                             0.389795  0.471072  0.377413    0.228321   \n",
       "Western                         0.482500  0.554101  0.405356    0.293159   \n",
       "\n",
       "                                 Horror     Humor  Juvenile    ...     \\\n",
       "Adventure                      0.137807  0.235557  0.554802    ...      \n",
       "Bildungsroman                  0.218844  0.121259  0.574530    ...      \n",
       "Biographical                   0.269831  0.326728  0.437317    ...      \n",
       "Christian                      0.264677  0.257135  0.411899    ...      \n",
       "Domestic                       0.274015  0.141512  0.716054    ...      \n",
       "Fantasy                        0.124591  0.442504  0.569797    ...      \n",
       "Historical                     0.234327  0.350106  0.354764    ...      \n",
       "Horror                              NaN  0.238026  0.614025    ...      \n",
       "Humor                          0.238026  0.007469  0.679743    ...      \n",
       "Juvenile                       0.614025  0.679743  0.047641    ...      \n",
       "Love                           0.184851  0.081834  0.587296    ...      \n",
       "Mystery                        0.278308  0.248281  0.679824    ...      \n",
       "Novel                          0.134041  0.116934  0.474543    ...      \n",
       "Political                      0.332482  0.154300  0.691145    ...      \n",
       "Psychological                  0.195711  0.056790  0.721850    ...      \n",
       "SF                             0.307945  0.460853  0.765409    ...      \n",
       "Short stories                  0.145447  0.149198  0.498051    ...      \n",
       "Subj: Detective                0.313738  0.334314  0.547745    ...      \n",
       "Subj: Fairy tales              0.838016  0.898516  0.495150    ...      \n",
       "Subj: Fantasy                  0.090595  0.355350  0.451206    ...      \n",
       "Subj: History                  0.479005  0.612750  0.186701    ...      \n",
       "Subj: Horror                   0.142266  0.442463  0.421674    ...      \n",
       "Subj: Humor                    0.526124  0.362184  0.285322    ...      \n",
       "Subj: Juvenile                 0.575462  0.634977  0.062316    ...      \n",
       "Subj: Man-woman                0.225115  0.093717  0.580487    ...      \n",
       "Subj: SF, American             0.338066  0.504867  0.765662    ...      \n",
       "Subj: SF, Other                0.398726  0.575267  0.744469    ...      \n",
       "Subj: Short stories, American  0.204503  0.192149  0.442398    ...      \n",
       "Subj: Short stories, Other     0.344361  0.319037  0.449006    ...      \n",
       "Suspense                       0.220743  0.209047  0.784038    ...      \n",
       "War                            0.381992  0.474752  0.393613    ...      \n",
       "Western                        0.448871  0.611160  0.494705    ...      \n",
       "\n",
       "                               Subj: Humor  Subj: Juvenile  Subj: Man-woman  \\\n",
       "Adventure                         0.458997        0.490340         0.285888   \n",
       "Bildungsroman                     0.463543        0.481658         0.080829   \n",
       "Biographical                      0.457251        0.414279         0.270289   \n",
       "Christian                         0.431184        0.414697         0.158216   \n",
       "Domestic                          0.575584        0.584091         0.108710   \n",
       "Fantasy                           0.607950        0.527034         0.411482   \n",
       "Historical                        0.425803        0.330589         0.267280   \n",
       "Horror                            0.526124        0.575462         0.225115   \n",
       "Humor                             0.362184        0.634977         0.093717   \n",
       "Juvenile                          0.285322        0.062316         0.580487   \n",
       "Love                              0.484096        0.524795         0.018254   \n",
       "Mystery                           0.493707        0.633864         0.217626   \n",
       "Novel                             0.350883        0.461137         0.081395   \n",
       "Political                         0.434833        0.676822         0.221569   \n",
       "Psychological                     0.522626        0.627119         0.060566   \n",
       "SF                                0.655510        0.712547         0.512326   \n",
       "Short stories                     0.393083        0.427847         0.133566   \n",
       "Subj: Detective                   0.386516        0.554565         0.291441   \n",
       "Subj: Fairy tales                 0.793344        0.360840         0.883210   \n",
       "Subj: Fantasy                     0.476541        0.388502         0.339118   \n",
       "Subj: History                     0.420043        0.272428         0.555887   \n",
       "Subj: Horror                      0.446464        0.453734         0.371221   \n",
       "Subj: Humor                       0.015612        0.387291         0.467973   \n",
       "Subj: Juvenile                    0.387291        0.009033         0.551980   \n",
       "Subj: Man-woman                   0.467973        0.551980         0.008946   \n",
       "Subj: SF, American                0.678620        0.696180         0.542238   \n",
       "Subj: SF, Other                   0.686086        0.697198         0.603350   \n",
       "Subj: Short stories, American     0.345012        0.378784         0.154236   \n",
       "Subj: Short stories, Other        0.410243        0.441901         0.267602   \n",
       "Suspense                          0.607409        0.700271         0.227118   \n",
       "War                               0.541691        0.397538         0.450343   \n",
       "Western                           0.597331        0.399995         0.566770   \n",
       "\n",
       "                               Subj: SF, American  Subj: SF, Other  \\\n",
       "Adventure                                0.353699         0.404589   \n",
       "Bildungsroman                            0.517385         0.603264   \n",
       "Biographical                             0.498245         0.550649   \n",
       "Christian                                0.549132         0.591069   \n",
       "Domestic                                 0.548539         0.636083   \n",
       "Fantasy                                  0.333588         0.383953   \n",
       "Historical                               0.482939         0.526918   \n",
       "Horror                                   0.338066         0.398726   \n",
       "Humor                                    0.504867         0.575267   \n",
       "Juvenile                                 0.765662         0.744469   \n",
       "Love                                     0.525186         0.595271   \n",
       "Mystery                                  0.559048         0.581436   \n",
       "Novel                                    0.419856         0.466292   \n",
       "Political                                0.555919         0.595001   \n",
       "Psychological                            0.497222         0.572098   \n",
       "SF                                       0.032036         0.039218   \n",
       "Short stories                            0.409146         0.474549   \n",
       "Subj: Detective                          0.585946         0.587753   \n",
       "Subj: Fairy tales                        0.895691         0.889060   \n",
       "Subj: Fantasy                            0.242769         0.281902   \n",
       "Subj: History                            0.673623         0.664257   \n",
       "Subj: Horror                             0.384428         0.398407   \n",
       "Subj: Humor                              0.678620         0.686086   \n",
       "Subj: Juvenile                           0.696180         0.697198   \n",
       "Subj: Man-woman                          0.542238         0.603350   \n",
       "Subj: SF, American                       0.008973         0.010150   \n",
       "Subj: SF, Other                          0.010150         0.004930   \n",
       "Subj: Short stories, American            0.434280         0.496991   \n",
       "Subj: Short stories, Other               0.559454         0.592366   \n",
       "Suspense                                 0.507068         0.555465   \n",
       "War                                      0.545793         0.561721   \n",
       "Western                                  0.614310         0.646122   \n",
       "\n",
       "                               Subj: Short stories, American  \\\n",
       "Adventure                                           0.207870   \n",
       "Bildungsroman                                       0.056788   \n",
       "Biographical                                        0.236074   \n",
       "Christian                                           0.238174   \n",
       "Domestic                                            0.109499   \n",
       "Fantasy                                             0.351549   \n",
       "Historical                                          0.213276   \n",
       "Horror                                              0.204503   \n",
       "Humor                                               0.192149   \n",
       "Juvenile                                            0.442398   \n",
       "Love                                                0.120800   \n",
       "Mystery                                             0.301230   \n",
       "Novel                                               0.134760   \n",
       "Political                                           0.313517   \n",
       "Psychological                                       0.131778   \n",
       "SF                                                  0.462701   \n",
       "Short stories                                       0.062271   \n",
       "Subj: Detective                                     0.306963   \n",
       "Subj: Fairy tales                                   0.830778   \n",
       "Subj: Fantasy                                       0.186342   \n",
       "Subj: History                                       0.452634   \n",
       "Subj: Horror                                        0.207324   \n",
       "Subj: Humor                                         0.345012   \n",
       "Subj: Juvenile                                      0.378784   \n",
       "Subj: Man-woman                                     0.154236   \n",
       "Subj: SF, American                                  0.434280   \n",
       "Subj: SF, Other                                     0.496991   \n",
       "Subj: Short stories, American                       0.006597   \n",
       "Subj: Short stories, Other                          0.191764   \n",
       "Suspense                                            0.310424   \n",
       "War                                                 0.377393   \n",
       "Western                                             0.406797   \n",
       "\n",
       "                               Subj: Short stories, Other  Suspense       War  \\\n",
       "Adventure                                        0.337010  0.115638  0.221977   \n",
       "Bildungsroman                                    0.234800  0.261793  0.419771   \n",
       "Biographical                                     0.164126  0.424048  0.279196   \n",
       "Christian                                        0.356537  0.305192  0.389795   \n",
       "Domestic                                         0.287097  0.227193  0.471072   \n",
       "Fantasy                                          0.387953  0.412226  0.377413   \n",
       "Historical                                       0.214752  0.364295  0.228321   \n",
       "Horror                                           0.344361  0.220743  0.381992   \n",
       "Humor                                            0.319037  0.209047  0.474752   \n",
       "Juvenile                                         0.449006  0.784038  0.393613   \n",
       "Love                                             0.237452  0.175530  0.405818   \n",
       "Mystery                                          0.476156  0.091146  0.477566   \n",
       "Novel                                            0.153723  0.186304  0.292006   \n",
       "Political                                        0.336636  0.167963  0.343339   \n",
       "Psychological                                    0.285306  0.155095  0.447285   \n",
       "SF                                               0.543565  0.385281  0.460904   \n",
       "Short stories                                    0.089370  0.283967  0.346206   \n",
       "Subj: Detective                                  0.456753  0.200179  0.511908   \n",
       "Subj: Fairy tales                                0.760717  0.934237  0.859850   \n",
       "Subj: Fantasy                                    0.306997  0.383206  0.387575   \n",
       "Subj: History                                    0.398114  0.659533  0.190870   \n",
       "Subj: Horror                                     0.297744  0.458449  0.431080   \n",
       "Subj: Humor                                      0.410243  0.607409  0.541691   \n",
       "Subj: Juvenile                                   0.441901  0.700271  0.397538   \n",
       "Subj: Man-woman                                  0.267602  0.227118  0.450343   \n",
       "Subj: SF, American                               0.559454  0.507068  0.545793   \n",
       "Subj: SF, Other                                  0.592366  0.555465  0.561721   \n",
       "Subj: Short stories, American                    0.191764  0.310424  0.377393   \n",
       "Subj: Short stories, Other                       0.008164  0.466334  0.354288   \n",
       "Suspense                                         0.466334  0.010804  0.386272   \n",
       "War                                              0.354288  0.386272       NaN   \n",
       "Western                                          0.524258  0.565129  0.496393   \n",
       "\n",
       "                                Western  \n",
       "Adventure                      0.388602  \n",
       "Bildungsroman                  0.522048  \n",
       "Biographical                   0.405448  \n",
       "Christian                      0.482500  \n",
       "Domestic                       0.554101  \n",
       "Fantasy                        0.405356  \n",
       "Historical                     0.293159  \n",
       "Horror                         0.448871  \n",
       "Humor                          0.611160  \n",
       "Juvenile                       0.494705  \n",
       "Love                           0.497120  \n",
       "Mystery                        0.552993  \n",
       "Novel                          0.460582  \n",
       "Political                      0.635047  \n",
       "Psychological                  0.556617  \n",
       "SF                             0.619393  \n",
       "Short stories                  0.458005  \n",
       "Subj: Detective                0.559724  \n",
       "Subj: Fairy tales              0.881942  \n",
       "Subj: Fantasy                  0.434119  \n",
       "Subj: History                  0.517190  \n",
       "Subj: Horror                   0.466548  \n",
       "Subj: Humor                    0.597331  \n",
       "Subj: Juvenile                 0.399995  \n",
       "Subj: Man-woman                0.566770  \n",
       "Subj: SF, American             0.614310  \n",
       "Subj: SF, Other                0.646122  \n",
       "Subj: Short stories, American  0.406797  \n",
       "Subj: Short stories, Other     0.524258  \n",
       "Suspense                       0.565129  \n",
       "War                            0.496393  \n",
       "Western                             NaN  \n",
       "\n",
       "[32 rows x 32 columns]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "withmatrix = pd.DataFrame(withoverlaps)\n",
    "withmatrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(-0.34338903725593367, 3.5785105034203366e-15) n = 496\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEACAYAAAC08h1NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnX2QHOdd57+PtDPd87KzuwLFgTjWWpJlyVnJWkFMCqhD\nCnbO4eqSHODzOXX4jJe84FrLV2WOrB2IAipdMCrDReFsRS7BAqWXBVIYHy8ZzDHy1V7hGyeWLV/G\nDg5hdUk4MhsupMp3cqKQ3/3xdE+/Pd39dE/3TM/O71O1pdVOz/TTPTPf5/f83h5BRGAYhmHGh03D\nHgDDMAwzWFj4GYZhxgwWfoZhmDGDhZ9hGGbMYOFnGIYZM1j4GYZhxozchV8IMSWE+H0hxMtCiM8J\nIX4g73MyDMMw4UwM4BwfB/CnRHSHEGICQHUA52QYhmFCEHkWcAkhGgAuEtGO3E7CMAzDJCJvV8/1\nAL4mhPgtIcTzQohTQohKzudkGIZhIshb+CcAHADwn4noAID/B2Ap53MyDMMwEeTt4/8ygC8R0Wes\n//8BgA+5DxBCcLMghmGYFBCRSPO8XC1+IvoqgC8JIXZZf/pRAB3FcRv258iRI0MfA18fX984Xt9G\nvjai/uzlQWT1HAZwRghRAvBFAD89gHMyDMMwIeQu/ET0IoC35n0ehmEYRg+u3M2ZgwcPDnsIucLX\nN9ps5OvbyNfWL7nm8WsNQAga9hgYhmFGDSEEqIjBXYZhGKZ4sPAzDMOMGSz8DMMwYwYLP8MwzJjB\nws8wDDNmsPAzDMOMGSz8DMMwYwYLP8MwzJjBws8wDDNmsPAzDMOMGSz8DMMwYwYLP8MwzJjBws8w\nDDNmsPCPMevr63juueewvr4+7KEwDDNAWPjHlHPnVrBt227cdtsHsW3bbpw7tzLsITEMMyC4H39B\nWF9fx9raGmZnZ7F169bcz7Vt225cudICsA/AJVQqh3D58iu5n5thmGzgfvwjQJRbZdDW99raGsrl\nWUjRB4B9KJW2YW1tLdfzMgxTDHIXfiHEJiHE80KIp/I+V1GJEvb19XUsLNyHK1da+MY3PosrV1pY\nWLgvV7/77OwsvvWtNQCXrL9cwtWrlzE7O5vbOYsCxzUYZjAW/wMAOgM4TyGJE/aLFy9i06Y3Iwvr\nW1fUtm7ditOnH0OlcgiNxgFUKodw+vRjG97Nw3ENhrEgotx+AFwL4GkABwE8FXIMbWTa7TZNTR0g\ngHo/jcY8tdttOnv2PJnmNAFVAl60Hn+RKpUt1O12E53n7NnzVKlsoampA1SpbKGzZ8/HPqfb7VK7\n3U58rlGk2+1SpbKl7/vMMEXB0s5U2jyR87zy6wD+A4CpnM9TWLxuFRlIvXr1Mur1OhYW7sPrrz8D\n4GXIuXELKpWvJ7a+3auKK1fkORYWDuHWW98e+Tpbt27d8Fa+jR3XkPcHcK+sxuUeMIxNbq4eIcS/\nAPBVInoBgLB+xo4wt8prr73mCrDeCeDzqNU248knz+Guu+5MdA4O1sYzznENhvGTp8X/QwDeJYT4\nMQAVAJNCiN8horv9B370ox/t/X7w4EEcPHgwx2ENnrvuuhO33vp2T7rm+vq6byXwv/Gd73wN8/Pz\niV8/bFWRl6gNMvU0K+wJeGHhEEqlbbh69fJYxDWYjcOFCxdw4cKFbF4srY8oyQ+AH8GY+vijsP3y\njca8tl9+EK+lc54ksYQiMU5xDWZjgz58/AMp4BJC/AiAB4noXYrHaBBjKCpZWs95W+Jc+MUwxaGf\nAq68g7sAACJ6BsAzgzjXqJFlgDXvYC0HSBlmY8CVu4w2HCBlmI0BCz+jzbgWfjHMRoObtA2YUcyI\n8bMRroFhRp1+fPws/APk3LkVLCzch3JZukxOn34scc4+wzAMwMI/EqTNiImzrl9++WW0223ccsst\n2LNnT34XwDBMoeC2zCNAmurauKZi99//73HTTd+He+75j7jppu/D/fc/kHp83LWSYcaItAUAWf1g\nTAq4kjYJizu+0+kQUPE8DlSo0+kkHtuoF2UxzDiCPgq42OIfEEkzYlQrhCtXZvDJTz4BAGi32wC8\n7ZyBa62/65PHfgC8emCYYsPCP0DuuutOXL78Cv7iLz6Jy5dfiQzsqnLmgf+DY8eOY319HbfccguA\nL/ke/7L1d32ybvDGPe8ZZgRIu1TI6gdj4upJw9Gjx6xe/fMEbCHgfK+XPxHR4uJhy91zAwEVWlw8\nnPgcWfap5573DDM4wK6ejckHPvA+mGYZwM8BeAXAHk+l7Cc+8XF0Op/F8vKH0el8Fp/4xMcTnyPL\noixuD80wowGncxYcO/ff3Uo4j9z/LIqygimrF2AY78bFi89iz549XPjFMBnCefwbnFESTHuiIprC\n66//PSqVnQC+goWFn8Lp07/LxWsMkxEs/EyhePnllzE//4P45jefgW35Az8G4FlwO2eGyQYu4GKG\njjuF87XXXoNpbofj66/Bn3o6Kr5/Tk1lNiIs/EwiVELoT+F8/vkXfKmo/xf+1NNRaOfMqanMhiVt\nOlBWP+B0zpFBVeEblsJ58uQpz1aQi4uHB7I1ZFZwaipTdNBHOudAduBiRh93ha/cgesSFhYO4ckn\nzyl35TpwYD8uX37FE5T+yEd+QTtIPayAtn3er3/968rrunjxImZmZkYi0M4woaSdMbL6AVv8A6Hf\nTcbb7TZNTR2wrF/502jMU7PZTG0Zh41pWL2D/Octleqe6yqXp8g0p7mnEVMI0IfFn7eoXwvgLwF8\nDsBLAA4rjsnrvhQev/D1K85hhAlpkvNFuT7s10/ixoka0zBcLKrz2kJvX5d/ImDXDzNMiiz8bwSw\n3/q9DuDzAHb7jsnrvhQav/AtLj6Qi5Ub54P3++tVE4H9d7/f3j3GrCaRsJWF3aYiL6JWNO12m5rN\n5lDGxTBhFFb4AycDngTwo76/5XJTikxQ+FqBFstZWZMqQavX58gwprXcGP4J6uTJU4lWJaoJIUrc\ns+4dlMVkpPM4wwyakRB+ALMA1gDUfX/P564UmKDwtQnYlYs1qRIsw2jQ5OS853zADgLOeESt0+n0\nJXZp3TlpXEe659Z5Tth5dceVl8suL0ZtvIyk8MJvuXk+A+DdisfoyJEjvZ9Wq5XLTSoSg7T4iYKC\nZbtsvJu4VAnoeiae5eXl1O4NHXE3zWmq1XaRaU4H3EbNZpOazebAu4TGiWDc46O2qc2ojXecabVa\nHq0stPADmADwaQAPhDyez10qOCdPniLDmKbJyf0DyXP3C5Z/MlAFLvux+ON89fb5a7WbI11Lae5D\nnCspL+s27YQzLIub3VejTdGF/3cA/FrE47nclCJji9vk5F4yjAadPHmKiPITgLigbVRmTlq3S5So\nhD0WNtF0Op3EcQXdgHaWpAlMD9PiHlYgncmGwgo/gB8C8E8AXgBwEcDzAG73HZPbjSkiUaI3yFTO\nsLHFTRBpzu2fNMIER+VaMs3ryTCS587ruLeytm6z3lc5b4Z9fqY/Civ8WgMYM+FXiV5acYujCF9s\n1aShb/G3+op9uM+dpXUbNREmWSEVweLOIpDODAcW/hFi2KmcRVnKhwV33UJkGA2qVPZmJtZZBHx1\nVlC6K6QiTMz2ODirZ/Rg4R8xshA395c1ykUTJyxZfent19F1Wdn3oFrdR4Yx3Ytz+F9LNf602T5Z\nVBhnXb3LFjeTFhb+ESRO3KLExC1GpdIklctToRZolLBkFVi0X6dS2U5AhSqVvbF57sF00opH/G3c\n2U/l8hSVSvW+xttvUZcq7bXfFRRb3EwaWPhHnCRWn1eMugTMxAaKk/jZk1rTzuu0CAjP4nGfv91u\nKwrI9pFhNDzndmc/lct1KpUmB+oWUbnKVIVuLNjMMGDh3wDoWn1eMWoT4BWmSmWODKMRaxWHiVqt\ndmMvCybZeIJjaTTm6ejRY4FVRbfbDbSMALZQvT7Xs56DE9MZAnYmcon1a0mrJkd/47akq44k/v+0\nY+cVxHjAwj9GxFn8MlDcirVI1UHmSQI6BDxCQIUmJ5OsQNQWv2lOu8Z6hkxzmjqdDi0tPWSNdZ/1\nvEc8Yw1OTF3r+DPW79HWdlZurOPHH6VyeYrq9Zs9E1eafkW6dQRpxp70HMzow8I/ZrhdQ6VSncrl\nKStQPE2VyvVKq1glVvbrlMvbLFHdS8A0AVOJYw7SDWNYPvAdVC5P0dLSQ1Sr3UjAKUvcDxBQpc2b\nazQ1dYAmJmq0eXONarW5gEh1Oh3fquARa4w7CajQ5s0yJpDEjZXUAl5cfMA653YCDFpY+JlEz3ff\nY+naqljXET6mNGO3M6Sq1R2UZ+sPHXi1MThY+McQVVZPWKA4ygoMCmy4S0Uve0ha9hMTNTLNmZ5Q\nuwVPrlK6vRVKuVz3iLg9XjmJVcg0d7sE7bz1/J1UKjWUwd6kaazdbrA30OrqqjWRtci9mlpZWYkU\nNf/7EgwObyE7OOxu+2zHZVTtnycn99Py8nLoyk1OujME3Bj63g0C7vszWFj4mR7xFastKpfrtLKy\nQp1Oh5aXl32B1q5ltetPHmq3TDVU8IB5kjEB+/czVCpNhljGLSqValSv77ee7xdSZxJxB5N1A9fO\naqVKwE4ql6docfEBKpenCLjBOt9563V2kmleFypqfuE7evSYIo6yz7p2J17gzoYyzWnr3F733eSk\nOlOq2Wy67rU62D8I67soNQnjBAv/BkNnuRx1THjF6nmSfvxqzxI3zevIiQu0LaGtx0weXiHVCcS6\nBc9r8W8hGVcInyic/QPOkHRHuV93rjeJqJrANRrzoWmg3W7XikG4xbJFfneJHIv9945S1FTCJ0U9\nmLZar8+5agJagcnMvv+Tk/spzj20srLiu9fnCahStRqdUps1RS4W3Kiw8G8g/A3cjh9/NNQ3r7M5\nijf46hc5W9R+whKYXQRUaHHxcGy7A3cG0Nmz5125/HMEmAohl4Jni7BMi5yxhMqeKLqWiHc9E4Vp\nTtPS0sNULtcVohwtxs1m0xVg9opnu922YhDReyPIsRkEHO6N0Z2BRBQufHZWk5y8nPfTcemos6Ga\nzaa1Ggsv7rN9+/57XSpNpi5yS8sgLH6OH3hh4d8gOF+eRyxBniVplb+lV93qFfI2Ab9Iqgwcf5sB\nw2gQcF1AZICbrAkhuro3aLkGXSwyXtCwxmb74ncEJqdut0tHjx7rpUWa5jRt3lyzjj9g/Vumen3O\nU6BmGNO0efNW697MW/9eQ7XarlDrNq5Fs47FPzExSaVSzfW+3Ez+grMw4et0OvShDz1EhjFN9fr+\nkPcxWRfT4GPOvTbNmaH51vOsQub4QRAW/hFFXdi0lxzXQtBNsLT0sOUTtsUv6Arw++OPHj1Gq6ur\nVC43KGjxN0ha12qr0sbpn7/PsjDPB453xm9b7V2qVnfRiRMnIl1SnU4n4NculRq0srKidJUAf0i2\nWyqu6EwVeDbN6d7x0sdfJzsbCajSpk0mlctT1uqlQpXK9VYcIDpjxi98i4sPKC1y+3203yfTnLXO\nMxeYvN0TZHQAu0u12i5qNpv9fzD7IA+rnOMHalj4RxCVBSMLmxqWRdm2hN1tne+liYlKQIDU/nBv\nmwHTnKZ7732fZVnbIlchw3hzrKC5BdrrOpFCahgNajabdPz4o9Zr3Ux2bn5UYNImSZtmu0Atab8d\nfwDX/Tw5bpPcNQIyyGr74Il0C8iCGVZnKLjK2kHAtZ6VkL/aWhUoziNldRTg+IEaFv4RI+pLe/Lk\nKXKCrX4BrxDwpoAAuf3h6v109xHwOAEVqtX2ULlcp6Wlh3tiY1ueuv18vEL6PSTdUXMUTNuskHRF\nkTU2Wbylez9WV1cDk5jtPsliYxbbZSIF3utLr1b3Wv5/+2/qbKewMThipZeJpDteOxOr0+mMTYO3\ncZrkksDCP2LEWTB2Y7Jy2bbG97pENaxa9yYCKnT8+KMK90jVmkSuI6BJfncHkX4/H9OcppWVFStH\nv6UQNXfa5g3kpG3K/xtGIzIV0nGTHPbk8vvdILp0u93IIOnRo8es++cVdcOYDgSF/dlO+j2VHB98\nmJtM5/Nxxx13UlQQfiMzLpNcElj4RwwdC8b+Qh8//qgVWNzuEoLz5KRkbiFZGetkmshsD1to7MyZ\nF0lmptgB1GrPfRAmHEEBkuc1zRusczdJunXI9eNO2/S2j5BjXaZSqUarq6ue67TdSM1mU2Hpt8gw\nGp7Vgo7gxVXNOhOYX5wrtLT0kHIlpCr2iju/rLCepM2bTdKprFVPuDMk3VHeCV+1ggpj1CeJUR9/\n1rDwjyBJLJhgda3KB+0VkWazSYaxw2V9B10VpVKDTDN8569gYHTG9XudZGuHYOASeDMBBglhWjEF\nuxDqndbjNxBQoXe8452WVS8LmAzjLVQqNWjzZtuqDVro7nsXtxlKWA69nVIqXTlut1mXgDfRpk0V\nqtVuJNOcDvjgowrZwlZN/mwmnffd//n44Ad/NnBPgBtoeXm59xmxXUBRr5dlVgwLsWRY94GFf0RJ\n8oFRTRRRk4f0XbszZc5Y1qxbOOJbDDvZPLtcItklp5+P21KeslYVUyQD0zM0MVGzViwfUVqswDL5\newNJt5Q6xVTX36tyl0xO7qcTJ074gtP+VM6SNR6ZVloq1XtiH9VvJ4u9jaOO63Q6pKph6HQ6rp5C\njgvI/zpZ+cjtMXEzOMkw00wLLfwAbgfwCoC/BvAhxeM53ZbRxy8QcRal/7kyTXHGEuEphXDobSrS\n7XZpaelh1/Pb5HXxdMkwtluuDP8KwKCJiUmSNQkGSbeU/bydBDxIwWD1PAHHSK4SbiDDcLZm1E1j\nDBO7ZrPpSzmV7ivZqE41/qq1slLHMexiq6jgcVbW4OLiYXKvmBYXD0dOCDZZZcW4iwuH3QyuCAw7\n6FxY4QewCcAXAGwDUALwAoDdvmNyuzGjTL+WhDerpElAkwzjzWQYTk647jaCwcKym5Rf/CeeeIKC\nrpMq+QufpPjbFv9HFGLbsJ7r9BVyT37BoOlOjw/evz+ue0XkZE05KaeG0XC1hAimXpbL1/j+5sQx\n7Mkkqmo3S2vQ79JZXl6mKBdQ8J6lEyjva/gn/vFMrxx2mmmRhf9tAP7M9f8lv9XPwh8k2y+qV3Td\nLSB04wzeD7jdVuFaku6YfWRXsardS7MUzPypEmDSO97xTqtuoUzOymSGgBKZ5naamKgpt5X0ppO6\nYxaTytqI6G6ZspgqPPWyQXIl0PI8x+63Y59Dlf2UtTWoWj3oWPz2PesnKyb4GeD0Srb4w4X/JwCc\ncv3/3wI44Tsmp9syumRlSTjWbXz2UNSH1fmAt8iumHWaq3n71rgrfGWlsBGwDsvlPbSyskJEdhD6\nLa4JRY7Z2SNAncsuC9n2uF43Ps8+zO/vFKWdsc7vz4jaQbK5nZyYSqV6IKvHL6zS2vemkFYqc5Ht\nraOIWgGqXEBh72OYW1D/M2DfX7s4b//I+vizcMMNM8105IX/yJEjvZ9Wq5XPXRohsrIkVHvbpl2K\n3nabNyMHeK/HunULoTtFc2KiFhBwdyFXMHPIjkuoe8sfPXrMcsvsIm+gNb6yNnhfW73GaXKlstOa\nPEoELJB0kbWsv3XIjgtExUJsIQnr52/XWSTdXSvu8xCX1RNGEpeiquV3ntkseWbLZBmUHVRWT6vV\n8mhlkYX/bQA+7fo/u3o0ycKSyGoCCXMn1GreJmphfnYp/k6biErl+oDrplLZQtXqdpfVHixUC2tz\nLGMOJpVKjdhrtc9lmvYmL2EVx6ZrcplIdA9lU7xp1yQp3V2GMWu5tpK9H3n5ktN8PvISOf/r5pkt\nM2wXTVYUWfg3u4K7ZSu4u8d3TG43ZtQpylI0LID44IMPBr5ApdIkGca0p1tot9ullZWVyLqDbrdL\nJ06coKje8uqNTW6gUqlGJ0+e0r5WVV2Et+LYm+Y6MTGpvcF6t9t1uY3sPQemCfhVKpcbkW2Wo14z\nD6EadnDSRtVmPE9hzuK6i1DDUFjhl2PD7QA+D+BVAEuKx3O6LYxNvx/SMIt/ZWUlduct262j82UL\nBoe9veVVAujv/+N2eYRdt3p/AXfFcTDN1d4iMc4/LltAVElmB20hJ0ZwLZVKDWv1o7dhvJs8fMlF\nsHzD3tM0E2Q/50xy3UVpEV1o4Y8dAAv/SKAKIAa/QKqdt2R/Hl0rzh0cVn2pogTQ/YVUuaBswrJ7\nvDtjxYuCylJ1WkDYrztDsoaiS94N46u9DeN1ycPKHHYPnLCAexqXWBLSXncRJksbFn5mIKgCiN4+\n/RUKVuHKbCD3Ej7uyxYncGGFbN4g8Uzkl/Ps2fPW6kI2TpuYqPV6F+mIgkoAZIzhet/Et4OAh0md\nKirbZQ87IybrCSXJ64UJqe5nZVDjtCmKe4yIhZ8ZMt2ue4vDR0j6tL0blbt3vcrDN+r9QrZJdjS1\nq3PVbiW/L94fc4gaZ9h2lDLt01+zMEWyEtnf0G6egDO55PdndZ+jXkf1WBo3SNhEWwQ/uh+2+Fn4\nR5JBpMjVarvJn8oY9uXQHY87RTTM1+58IYPVuTo5/e7JQWfVEXQXVa1zb6FgZ1RZtOY9XrqA+rEY\nw/ZLyMIHHfU6YRsJpRXFIop8GMN2j9mw8DNaDCIoZX+BdZbquuNxUjBl6qVhzIb6/8O2OvT70qNE\nKmpc/lRV9zU6sYGmteJxcv+r1b1WLyN3hbLMciqXp1IJXtg1hG0un8VrhwXZK5Xw1hUbsZVDESYq\nFn4mlmEsUePcBDrjUVvWTtzAf3yz2aRazetSqddvpuXl5dBAsr/ffpIJQTUR1Otz5N37YIY2b65Z\nmSp2hXLXmhwmqVSqp3ofVKuWWm2fb+ewdOIbtSIKc3PJ/aCL4QbJmiIIvR8WfiaWQQel0vjIw3aj\nCm4lOU9AmyYn9weOD8vYCdv3145P2CmjYeOK6sCpej1/MZm994F3XNMEdFK/D0Wy+IGZ3v4FRXCD\nZElR0jf9sPAzAfzCm5XFr2P5pN0oJUxI1cVWLTKMaeU4nPbB+ymsf37YWJeWHlIKZxI3RliKot2t\n0+//D7tuHQvTfa2GMR1byJbEco1q0eDUK8yTHcTPO4DfD2nHVKRgrh8WfsZDmPD2KwhZCrr79er1\nuV6uvwqn2ZzdDvo6Uvnt/eOI2ms3bKxAlUol6X7RdQHp3AN3B9OjR49FVgLHuZRU98cwGp5VjX8l\no/v+qa5FtfGKrFkIz4oqEv1Y7KpJvF6fU7oOBw0LP9MjTqDSpuDpCl9Sl5K9sby7xUP4cQ2q1XZH\nThJJxqz2VTspln7RlMFb2XOoXJ6KFBBnstpHqsyisKZqqjGXy1OhW2SGXaNfqMNWMroZN1HnKLJb\np1+LPfh8uyvp8K+ZhZ/pkVR4+xH0ycn9AcunX8s46kuZZrke1bI4PHDcjVgZdAk4Q6Y53fN3h7WF\n8O705bwPURNteH2AeotM3cpXOWFVyK6rCPtcqK4n6jNVRLeOmyxiW96gfXF2HmPhZ3okFVPdL0aS\noKmuSynvgLMz5hbZ+wiE+fij/O5h44zaYSvsfeh0OqF/t+sUVO6nsC0yVQ3nVL1u7JWMvEa1ayZs\nQkoSjynaJJBlbEu6Dr2JBsNMV2XhZzwkKTBJ45PXCZrquJTC+vf4NzlJS5g1rJrU/H53dyBTimuD\n3AVpOjtsqd4H1ZhM83oyDMeVs7h42PO8sN5B9utXKrLFdKUyF3pfne6jO6hW26U9UfnjA0niEkUh\nq4KrogV6WfiZAP1kb0QFfXWCpmHjifMTl8tTVCrVMxOPblfVIjk8KKwKZNrN3uRuWhUql6+jSkW2\niNax/vz3L2iht5TuA3eFsl69gdxUxo4ZRK1kVlZWaGVlxTPB6rhz9Kqmhy+IKrJajRSlapeIhZ/J\ngCRB3zRf9DhhcXr9JBOPqC+0DMg2yG7EBtQIWOz551V4hTnY7A2okmE0aGHhfUrB1smKclvohtEg\n/xaNOhOILFS7kcJcQPZz7JWM3e10cfEB137FO3tBapXLSBUkVgldkRqXqcjaBVUUlxYLP5M5/S79\nk75eGvGIa62giknI5m1VOnr0mPL1pEvH3nSmTbLyllw/8wQ8Ts72k07gWAgjsuOoykJfXV1NPIk6\n1vzOgDXvf57dxqJWu5EMo2GJvncys4vLdFxGYb79YVn8cSLcjwuqKAIfBgs/kzk6Qpz0ixHnUkqa\n4ZN0InFvtqKKSTiBYDsjRmXxbyHZi2c72YVkzgb0U6Griaj72W9MBqhSuRxMcQ0ee4aAaxWTmZ01\n1CXgcSqX69TpdKwireh9jN3vrbvNdalUz90NEifq/UxI/dQ8DGqiYOFnlMT5ZuOem6UVpzOWJAKo\n010zPMAZFDDn9bokXUJ2MzV7s/idJFsun7JE3qBgm+X9VKvtUgpj1P20XV06Qe2wdM9qdUcgKB08\ntmtdS9B95XQVPUBA1ZX3P6Mcs+r6BlnQpfP5TOuCSvPZH0Zwm4WfCeD4k7eTXL6re9XovEa/gawk\nXwpdq0nnyxmVheTviOkI1y8TsJ+8zdRuIqBEsmJYWrMLCz9Dwe0oZzwWv/9aVPdTt3jOfh31hGan\naHqLi1SumlKp7ilEc7aD9Aq8kxJ63poQ5inMRUY0eD+/7opU11Xlfp/yqoXJGhZ+xoPXbdHfB7Lf\n5WueXwqdicm2ph1xmydgJtAR03FVXO8S9K5lwZoE/GJv/KY5Tc1mk44ff9QTPHa7N6IC41EiHjZ5\nqfrty13PqpY4B3f4KpenrOv2Vhv7Vxgql463CMxbtDbo97mf86VJQ016LcMKbhdS+AH8KoCXAbwA\n4FMAGiHH5XVfxhbngxgMTg462yKJnzgNcROTk34677Hio91Cj5B05VTJ3h/XqXg9T0CVarWbe1Z1\ns9mkJ554gk6cOEGrq6vaGUpp3FV+95BznjbJGAa5fty++3Dh1km11VnxqZq66bqw0qC7Ig37jETd\n37xqYbKkqMJ/K4BN1u+/AuBjIcfldFvGlywt/n7HkcRPHPU6YV/cuIwO05ymanWHZbWr/c9qX7h/\nM5cZkhurBK/l3nvfb60SvpeACk1M7PZNFk5rZ39NhFxleK30KJeDvwDNFijDuI6Crqfwil/VvVIJ\nXdIVn32S+ItCAAAbIklEQVT8yZOnrGuTE2dewd5+VqQ6E2+cURFVa5E3hRR+z0mA9wD43ZDHcrkp\n4479QTTNWXKn6A2y4MT5Yun5id24BUTlMtHJ6HBSF7dbwv8mAioeEQpazmRNEN5VCrCDTPM639+7\nZJr2awcnWXd7hFJp0oo37O01met2u7RpU4XcKaGbNpmeiUGVkmpn79j3aHV11crBf8Qawz5rAqol\nmnCzykoJi0NEuYqGQdZZP5zVExT3pwC8N+SxXG4K4xUGVSfIQZzf+WKFuxvCgqAyuKiuao37wjab\nTeu5j5OTpXOA3P5995fXrhquVu1zei1xw5imlZUV13nPW69pu4KOkSpNslbbRaY5bVm/tjDfTECF\nDh9+wHpui5yU0Co1m83edYR1+XRPiIZh5+Dbq5U21etzvV5CSazQLMSr3W4HdkED5kMznvqh3/Gm\nsdSH5drxMzThB/A0gEuun5esf/+l65gPA/hUxGvQkSNHej+tVivHWzV+DNsySRpc82aitMmfMtlo\nzNPy8nLsEv3uu++xRPUtgckDqPpEnMguZCqV7PRNr/VsW9m2+yjoCpq2foJ9h5rNpjWJBc8ng8mO\nYAOzHuFXdfmU+xf4N6epkGpz+yTvdVYpiYOy+LMcb5Lvw7CCua1Wy6OVhbX4AdwD4L8DMCKOyecu\nMcovoO1yGGS+cZLgmrezZDBTJc7iDwpzcPIAdtCJEyci2h/b1vyssve/al9f+dzvItnPZ0/ATy4z\nZIJ7AUt3jHcl4D6f+h41An2C7PYPaX3Mq6urgXhDlBWrE1/Js6ArzOpOU7OS1bnzCmKHUUjhB3A7\ngM8B+K6Y4/K5K4xW0DLrJWoS60nVbybYS97OTd+v9PGrG5edIcftok5zVLc/rpAsZJLPq9V20crK\nSuB6VF9805zpZfWort9x2Xjv/fHjjwb+Xio1lDtnubNlshA9+72SfYcMknGGeCtWJ75iF+vZK56s\nBVmny2meRo37Pcm6uaAuRRX+VwFcBvC89fNYyHF53Zexwi+4ukFL3c04dNDJXfcfq+o3408jdFej\nuvHvYuWtvvWnZ1aoWvUWsan856qA7NTUATLNaTp69FioGMcVXp09e16ZUy9jETsCqwe7EjfsHvab\nymg/v163i9t+MTBBqoyCOP92VN1BlsIYHEdLObHmbfmnbS6YBYUUfu0BsPD3jf+Ltbj4QCBo2WjM\nu4KMyQqGdIjLBY8rkPH3m4lL4Yx/XdtdE2xlYKPynwcDst5Arm6qo/s+el/LG+ReWVkJCJb8/xMU\nt9OXjrvFHz+xLfHg/d9CTtuGnaFbS8Z1WQ2uhOL3LYj6TOl8BhqNee0up1nTbrd95+2SYWz3xGny\ngoV/jNG1fGzXQZaN0tyE5Zz7twC0xxLVbyZssonL9jl58pQrPXInASbdccedkX5qlbtnaelh1xjV\ncYa4tEjv64avtKTF/0Zy0l23kBMoln1z7rjjzsSTcXAMTjsHlUg6DexaBBi0urqqfc/s+6H6DNRq\nu6ha3ae89ijCDJAkk1kSyzvtKrfT6bg+i46xYZozubt8WPjHmOCXrU1OW2H1Fy3sQ54mW8Fe7qqy\nZFRbANqFTKqsj6jmXl7BCQZsJyf3U7lct16nRWFbLfrxunumye7X7wiJO16gd0+SxFa6XbuIyx7z\nHwYmtbCMHf3PhX/yChoH8v+yXYV7X2IVUcVe/vdVureiN5rxExW41XEzJQ1w9+OKkhb/9dZnJ9/4\nmR8W/jEmS19nUov/5MlTVkqizGXftMmkcnkqNgjpXnl4+82EC2u0kNmpkd8bEOlabV+sSMvJ6Ri5\nu1MePXosNHVT3+J3JqBSqR4qSu57sXlzjYLFYzdYr6M38QTfy+BEWSq92fqc2Dt0PUrAL5NhNPpy\nw7jFN1i/IFNj7733fZFCG2aAxKXxRo1L7z4FJ+W413Ke/3jgHuftamLhH3P8lo5/z9Y8OnKqslSA\nGTKM6IwUv2tJNzgW7rqQ2T7SspyipO0hut3othLdbjdVIdTi4gPW/dnVs6KjhMSdCaNyPyW1+N33\nvl6fU7xXFQJ+lYDoXbzSYF+L16Un6xRqtTml+y8ua0rH4k9D2CRjv+c6q4C0BkK/sPAzyqyetOlz\ncc/tdu28dL+fWF2dqRuEjOsTo0pr9ArMeQK8LYd1ArE6jeTiAo06wqX7XmQ5kasDoXalb/L4RRJU\n9yHM/ef/zIR9JrLuiZNVQDqtgdAPLPxMXySdJBz3SHbVmbb17w9C66SGer+83l2kiPLbqSnsdaOa\nq+ne634m8rhJyms5e7OfshYr3RqEqFWQ/zF/Gm/WYzx69Fjqytx+DK6ksPAzqUkT2HKE8hHLvdJ/\ndaZ/HHKzEH0hduINciybN1d6jdB0hCZpG94oF1VwIpI9/e+99/2x97pf4dCZ5JrNJi0tPUymOd3z\nxbtrFLImbuWWxhWZdbGUe4z9rtgGBQs/kwqVQOla7G7/cblcp6Wlh1N/MdRplVWSe9uqt0pUjUVm\npdSsH9n+YGnpIW3rTUd0nUDszeQPStfrc7S8vEzdbteKgbh7+k8SUI4Uk35FLU6wnDYKTqvkPAU/\nbqxJJ7hBCnLWLqU8YOFnUhFsm+xktOiQJoNCN41UWu43kLsjpW7qnzs11DCmM6usjD6Xd9vDpaWH\nKdjIzdsfv1bb1yv0iRM1HddP0uKqIrZKjiLMhWZPtlkzSLdNGlj4mVTEZbREPS/pFyLKmo0Tb1Xj\nMre/PDhpzJOd/jg5uZ+Wlh4mw2hQvT4X6daIu66wCcre19gbxLTTXP2T2RnPRGCa03T27PlI0Q6r\nzJbFWNOeauewyWOQrZLzQv05qdDkZPL9pDcCLPxMYmwxkJap/taIuu6IpD7TqLx+965T/vMfP/6o\nJbIt5aThbIAyb7VdVjfT0rmuMOG5++57At0y6/U5K+bgLmaatCZaO3fe6U/U6XQC7TRKpYaiMK4V\nmGTsamN3UFynuGrULH4id/W23WPoEW2DZaPBwr9ByWup6e8j4xeoJG6VqECpLaK6WRLJgqaO6Jnm\nHuvfWSqVGrR5c40mJ/crexOpKoST+I5Vjd3C0v/sDJZabV9PhFUdSe1qZhnQniF7Q3igbG0b6Z6Y\n2+TvoinHYvRWD+7sHX9QVdUqueguDT/drr2P8uB78/RD1veZhX8Dkmf2gl+koqpK3ei0dFDnRc9Y\nG5w8HhDdqGv3j0ftarF7zEh/fqfT6X3B1D2BHDeQPfYkrSpUjd3sgh/TnO41eAtLPw2bZLy9gezX\n3kcywO12xbUUFv8WAuYI+OWeBR+VDquTNuv/zBRtYhiVzBsbd58p1R4PaWDh32Dk+aEOEzn/RuBp\nxxUeqDUClmbcPdApjJKip878iYsd2IKbpCI07B441v3NPQENE0zVxBZ9becJqPZWDvfe+77AqkP+\nfy8BVVpaekjrepK44Abda16HUci8IfKnP28h1YY7aWDh32CkaZamS7+TStyXLcwd4/bBm+ZM33nq\nuj5e93jdLar9m2eoqmN1hfvkyVOWe+oMqXr5h90n/2tHXZtpTntaYZw8ecqKbcy6jpUpueVyQ8sN\nEvc5y9oAyWPlUNTViHtVFVbwaBj9xVdY+DcYeS9j+7WU4r5swUDt9R5xiWucpnt+/4YtuoHmsDiC\ne1N6nUIo+zVly4cqyXTYLST72uv3bfGPz39tpjndaxXtXwF94AM/a93fUwTYbTRkAVtcfUbc5yxL\nA6TIK4csUdVKOJN0sKNsP98DFv4NSN7L2CwtpTC3TLPZtJqnxaeL6own7DxJr0MlaP5t+3Qrh9Ur\nnKnAZJdmG0N7UnF3QPW7ybrdrqv18c0910+p1HDt+BW+sUpcE70sDJCo18nqc1gEyz8qc0q1xWa/\nxhwL/walCB/mOOKESwqos+WgyrepYw1maTEGv6CtwJfSX2wVFexVxTSk6EZ3oFTtS+A+TicFU97j\nhu+YLVpdMN1jCfucZWGAZNEBM4qirCbiaiWk5T8d2D86LSz8zFDQdxV0SWanNKlen4sNwKpEMmvX\nl1vQ1DtSeYut0gZ7o/vv30iqGgo70C5TP6OLrqT/eN53zD4qleqZpTv2a4CE3aMsKqqLlN2jO1Fn\nZcwVWvgBPAjgOwC2hDze9w1g0tHvhzCL4GBcmwFbAP3CbJq7A6X6Sa/HPl6V1VMuT5FpTlO9Pheb\nfqfbVjpo5XfJ7wbzB4X9LieVkKiC6cePP1oYQVTdo346YLrJMxEiDWG1EnlQWOEHcC2ATwP4Wxb+\nYpHF8jhJOmCSLCC3xWwXmXldMTJ9sV53lsz9Xo9qnM7SPFrQ3X/rdDqejA77MSfP32/lO6maqoIz\nmX00GSok9mtXKluoXr+ZyuUpOn78Ua17P2j8Qey84wfDwp/VkxdFFv7fB7CXhb9YpP2yRKUgRrX3\n1c0CiurZLusA7EIlf1+caW1/tu716UxIKheOFGknoGr31ZFiP0My+8Zr5ZvmNK2srNCJEycCbhvb\n9WM/7u5B757sJiZqNDFRC/StKXKcKKuJqWgT3KAopPADeBeAX7N+Z+EvEGmWxzrZJ7ZF665c1cUt\nUOFFYI8TsEyycMn92A3WxBC9b2/Y+XTvkbOhu5Ov785OCTa8awUmKXe6p12Q5TRd2xs4Pmyy8U5M\nQZfRsK1eXTZSVs+gGZrwA3gawCXXz0vWv+8C8CyASXKE/7tCXoOOHDnS+2m1WrneLCa5xR93vMws\nmbTE5wABM1Qq1VMHtBwRdQTW7XNXi2mLVH14VOi4hTqdDhmGN/gos2cq5OTrn/e0fZBuHPdkoeqr\nM0d2Xr26ati7l3DYjlXedhRt8m8y36+fexyFtOi0Wi2PVhbO4gcwB+DvAXzREv2rANYAvEFxbH53\nigklyfI4boXQbDZJ1Xu+2Wym8r2rimDclbS2793p129b+juoVtsVeZ4kcQm5L22FKpW52ECrvsVf\nIcNw9gJW3Vv3hi5RLTbysviLkh7JRFM44Q+cRIr/TMhjudwURo3fj61j1cWJpRT+YO/5YEthvV7/\nYc9xj1da5N52zLYlHPX6yTORWmQYsj2yyv3k3rRG+vi9m72XSm+wJqd5ArZQuXxdb/MVnXsb9bh7\n8i6V6lQuT0UG0dO+13bzO6ZYjILwf5F9/MOnH0sursJTlY2i6o4Z54LwCrPsVFmvzymLfdIE9fRr\nD6IsbGdC8AuiO6PDceO0LHdMSznxxV1H3L2Pm8iTvO/q+MoNnlUKUwwKL/yRA2DhHwhZpL3pVHi6\ne8+nOafzHG8nw7AWCml80WnbFNjPM03bBRS/85Pu5BR3HWkfzyKeY8dQRiVgPC6w8DOxDKLQJS7d\nU9cqdzY7Sd5CQZdOp9NryOYnasyqoK/OZJbUvZaEKIs+bAUVl8GliqHkVRjFgeR0sPAzsQyz0CXp\nF7vdbpNpzgX86TotFHToZ/ORfibQPIKm+jGCZL3gw2IoWX9eOJCcHhZ+Rgvd1gLDptPpKCz+Cpnm\ndN9FOv1OgP0Uv+Ux8epMRKoVlM658y6MSrN6YhxY+Blt/CJfRIur3W5bqZRONoxpzmrtEqbz2v26\nvNIIYl6uNp0JRdXITffceRkF0p3UIGBXru7HjQwL/xiR5RdxmO4fvXG1KCobpr/Xzq69wyDPqyJt\nP6Rhvc/e97c44xo1WPjHhKyt86J1NnSTp5thWL1d8jxv3ERUpH423s/deUv8byDDSN7qY5zpR/iF\nfP7wEELQsMcwCqyvr2Pbtt24cqUFYB+AS6hUDuHy5VewdevWwrxmlqyvr2NtbQ2zs7OZjyfP1y7i\neYd9bv84vJ+7CzCMd+PixWexZ8+eoY1r1BBCgIhEmudOZD0YJh/W1tZQLs/iypV91l/2oVTahrW1\ntdRf4q1bt+L06cewsHAIpdI2XL16GadPP1YI0Qfk+PIaS56vXcTzDvvc/nEEP3enWPQHCFv8I0Ke\n1nlRLEFmvODPXX/0Y/Gz8I8Q586tYGHhPo91ftdddw57WAzDDAEW/jGCrSSGYQAWfoZhmLGjH+Hf\nlPVgGIZhmGLDws8EWF9fx3PPPYf19fVhD4VhmBxg4Wc8nDu3gm3bduO22z6Ibdt249y5laGMgycf\nhskP9vEzPYpS0GVnL5XLs/jWt9Y4e4lhFLCPn8kEu0hMij7gLhIbFOvr61hYuA9XrrTwjW98Fleu\ntLCwcB9b/gyTISz8TI/ZWWlhA5esv1zC1auXMTs7O7AxFGHyYZiNDgs/08Mupa9UDqHROIBK5dDA\nWzgUYfJhmI1Orj5+IcT9AO4D8G0Af0JES4pj2MdfMIZdJMYVygwTTyELuIQQBwE8DODHiOjbQojv\nJqKvKY5j4WcCDHvyYZiiU1ThXwHwSSL6y5jjWPgZhmESUtSsnl0A/pkQ4lkhREsI8f05nothGIbR\npK9+/EKIpwFc4/4TAALwC9ZrzxDR24QQbwXwewC2q17nox/9aO/3gwcP4uDBg/0Mi2EYZsNx4cIF\nXLhwIZPXytPV86cAHiGiZ6z/fwHADxDRP/iOY1cPwzBMQorq6nkSwNsBQAixC0DJL/oMwzDM4Mlz\n68XfAvCbQoiXAHwTwN05nothGIbRhHv1MAzDjCBFdfUwDMMwBYSFn2EYZsxg4WcYhhkzWPgZhmHG\nDBZ+hmGYMYOFn2EYZsxg4WcYhhkzWPgZhmHGDBZ+hmGYMYOFn2EYZsxg4WcYhhkzWPgZhmHGDBb+\nEWB9fR3PPfcc1tfXhz0UhmE2ACz8BefcuRVs27Ybt932QWzbthvnzq0Me0gMw4w43Ja5wKyvr2Pb\ntt24cqUFYB+AS6hUDuHy5VewdevWYQ+PYZghwm2ZNyhra2sol2chRR8A9qFU2oa1tbXhDYphmJGH\nhb/AzM7O4lvfWgNwyfrLJVy9ehmzs7PDGxTDMCMPC3+B2bp1K06ffgyVyiE0GgdQqRzC6dOPsZuH\nYZi+yM3HL4S4GcBJACaAqwDuI6LPKI5jH38M6+vrWFtbw+zsLIs+wzAA+vPx5yn8TQCPEtGfCyHe\nCeDnieiQ4jgWfoZhmIQUNbj7HQBT1u/TAL6S47kYhmEYTfK0+HcDaAIQ1s8PEtGXFMexxc8wDJOQ\nobl6hBBPA7jG/ScABODDAG4F0CKiJ4UQPwngA0R0m+I1WPgZhmESUlQf/z8S0bTr/98goinFcXTk\nyJHe/w8ePIiDBw/mMiaGYZhR5cKFC7hw4ULv/7/0S79USOH/HGQmzzNCiB8F8CtE9FbFcWzxMwzD\nJKQfi38i68G4eB+AE0KIzQBeB/D+HM/FMAzDaMK9ehiGYUaQoqZzMgzDMAWEhZ9hGGbMYOFnGIYZ\nM1j4GYZhxgwWfoZhmDGDhZ9hGGbMYOFnGIYZM1j4GYZhxgwWfoZhmDGDhZ9hGGbMYOFnGIYZM1j4\nGYZhxgwWfoZhmDGDhZ9hGGbMYOFnGIYZM1j4GYZhxgwWfoZhmDGDhZ9hGGbMYOFnGIYZM/oSfiHE\nTwoh/qcQ4p+EEAd8jz0khHhVCPGyEOId/Q2TYRiGyYp+Lf6XAPwrAM+4/yiE2APgXwPYA+CdAB4T\nQqTaFHjUuXDhwrCHkCt8faPNRr6+jXxt/dKX8BPR54noVQB+UX83gPNE9G0iWgPwKoBb+jnXqLLR\nP3x8faPNRr6+jXxt/ZKXj/9NAL7k+v9XrL8xDMMwQ2Yi7gAhxNMArnH/CQAB+DAR/Ze8BsYwDMPk\ngyCi/l9EiBaAB4noeev/SwCIiB6x/v9pAEeI6H8ontv/ABiGYcYQIkoVO421+BPgHsBTAM4IIX4d\n0sWzE0Bb9aS0A2cYhmHS0W8653uEEF8C8DYAfyyE+DMAIKIOgN8D0AHwpwDuoyyWFgzDMEzfZOLq\nYRiGYUaHgVfuCiFmhBB/LoT4vBCiKYSYUhxzrRDiL4UQnxNCvCSEODzocSZFCHG7EOIVIcRfCyE+\nFHLMCauo7QUhxP5Bj7Ef4q5PCPFeIcSL1s+qEGLvMMaZBp33zjrurUKIq0KIHx/k+PpF87N5UAhx\n0SrIbA16jP2g8dlsCCGesr53Lwkh7hnCMFMhhDgthPiqEOJSxDHJdYWIBvoD4BEAP2/9/iEAv6I4\n5o0A9lu/1wF8HsDuQY81wTVtAvAFANsAlAC84B8vZCHbn1i//wCAZ4c97oyv720Apqzfbx+V69O5\nNtdx/xXAHwP48WGPO+P3bgrA5wC8yfr/dw973Blf30MAPmZfG4B/ADAx7LFrXt8PA9gP4FLI46l0\nZRi9et4N4Let338bwHv8BxDR3xPRC9bvrwF4GcWuA7gFwKtEdJmIrgI4D3mdbt4N4HcAgGR205QQ\n4hqMBrHXR0TPEtE3rP8+i2K/X2503jsAuB/AHwDoDnJwGaBzfe8F8Cki+goAENHXBjzGftC5PgIw\naf0+CeAfiOjbAxxjaohoFcDXIw5JpSvDEP43ENFXASnwAN4QdbAQYhZyxgukghYIf8HalxEUvlEu\natO5Pjc/A+DPch1RdsRemxDiewG8h4geR7BKvejovHe7AGwRQrSEEM8JIX5qYKPrH53r+w0ANwkh\n/g7AiwAeGNDYBkEqXckynbNHRNHXLygOD40uCyHqkFbWA5blzxQcIcQhAD8NuUTdKPwnSLekzaiJ\nfxwTAA4AeDuAGoC/EkL8FRF9YbjDyox/DuAiEb1dCLEDwNNCiH3jrCm5CD8R3Rb2mBWouIaIviqE\neCNCls5CiAlI0f9dIvqjPMaZIV8BcJ3r/9daf/Mf8+aYY4qKzvVBCLEPwCkAtxNR1PK0SOhc2/cD\nOG81GvxuAO8UQlwloqcGNMZ+0Lm+LwP4GhG9DuB1IcR/A3AzpO+86Ohc308D+BgAENHfCCH+FsBu\nAJ8ZyAjzJZWuDMPV8xSAe6zf/x2AMFH/TQAdIvr4IAbVJ88B2CmE2CaEKAP4N5DX6eYpAHcDgBDi\nbQD+0XZ5jQCx1yeEuA7ApwD8FBH9zRDGmJbYayOi7dbP9ZDGyH0jIvqA3mfzjwD8sBBisxCiChkk\nfHnA40yLzvVdBnArAFj+710AvjjQUfaHQPgqM52uDCFKvQXAX0Bm6vw5gGnr798D4I+t338IwD9B\nRugvAnge0oocepQ94rput67pVQBL1t8+AOD9rmN+A9KKehHAgWGPOcvrA/AEZLbE89Z71h72mLN8\n71zH/iZGKKtH9/oA/BxkZs8lAPcPe8xZXp+lLU3r2i4BuGvYY05wbWcB/B2AbwL4X5Crl751hQu4\nGIZhxgzeepFhGGbMYOFnGIYZM1j4GYZhxgwWfoZhmDGDhZ9hGGbMYOFnGIYZM1j4GYZhxgwWfoZh\nmDHj/wMab6MRRunN2QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x121c51390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "socialvals, withvals, comparisons = compare_to_social(social, withmatrix, use_self = False)\n",
    "print(pearsonr(socialvals, withvals), \"n = \" + str(len(withvals)))\n",
    "plt.scatter(withvals, socialvals)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Bootstrap results (with overlap) for uncertainty"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.34338903725593367,\n",
       " 3.5785105034203366e-15,\n",
       " -0.41877196987752191,\n",
       " -0.26330585592801131)"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pearsonr_ci(np.array(withvals), np.array(socialvals))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('../results/bootstrapped_topicwith_r.txt', mode = 'w', encoding = 'utf-8') as f:\n",
    "    for u in uncertainty:\n",
    "        f.write(str(u) + '\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Normalize the topic vectors for date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "211\n"
     ]
    }
   ],
   "source": [
    "yearvec = dict()\n",
    "yearct = Counter()\n",
    "\n",
    "meta = pd.read_csv('../metadata/genremeta.csv')\n",
    "                  \n",
    "for idx, row in lda.iterrows():\n",
    "    date = int(meta.loc[meta.docid == idx, 'firstpub'])\n",
    "    # not really first date of publication; conventional column name\n",
    "    # required by software elsewhere\n",
    "    if date < 1700 or date > 2015:\n",
    "        continue\n",
    "        \n",
    "    if date not in yearvec:\n",
    "        yearvec[date] = row\n",
    "    else:\n",
    "        yearvec[date] = yearvec[date] + row\n",
    "    \n",
    "    yearct[date] += 1\n",
    "\n",
    "print(len(yearvec)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/T/EdQGitrJhAQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x121a77438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "avgfreqs = dict()\n",
    "spans = []\n",
    "dates = []\n",
    "for date, vec in yearvec.items():\n",
    "    span = 5\n",
    "    included = 0\n",
    "    \n",
    "    # iterate until we get a span big enough to include\n",
    "    while included < 150:\n",
    "        included = 0\n",
    "        for yr in range(date - span, date + (span + 1)):\n",
    "            included += yearct[yr]\n",
    "        span += 1\n",
    "    \n",
    "    dates.append(date)\n",
    "    spans.append(span)\n",
    "    \n",
    "    summedvectors = np.zeros(100)\n",
    "    for yr in (date - span, date + span + 1):\n",
    "        if yr in yearvec:\n",
    "            summedvectors = summedvectors + yearvec[yr]\n",
    "    \n",
    "    avgfreqs[date] = summedvectors / (np.sum(summedvectors))\n",
    "    \n",
    "plt.scatter(dates, spans)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Subj: Man-woman\n",
      "Subj: SF, Other\n",
      "Biographical\n",
      "Suspense\n",
      "Fantasy\n",
      "Adventure\n",
      "Humor\n",
      "SF\n",
      "Historical\n",
      "Subj: Detective\n",
      "Domestic\n",
      "Horror\n",
      "Christian\n",
      "Juvenile\n",
      "Western\n",
      "Subj: Juvenile\n",
      "Political\n",
      "Short stories\n",
      "Bildungsroman\n",
      "Love\n",
      "Subj: Horror\n",
      "War\n",
      "Mystery\n",
      "Novel\n",
      "Psychological\n",
      "Subj: Humor\n",
      "Subj: Fairy tales\n",
      "Subj: Short stories, American\n",
      "Subj: History\n",
      "Subj: Short stories, Other\n",
      "Subj: SF, American\n",
      "Subj: Fantasy\n",
      "randomA\n",
      "randomB\n",
      "Humor B\n",
      "Subj: SF, American B\n",
      "Subj: Short stories, American B\n",
      "Subj: Humor B\n",
      "Novel B\n",
      "SF B\n",
      "Short stories B\n",
      "Subj: Fantasy B\n",
      "Juvenile B\n",
      "Fantasy B\n",
      "Bildungsroman B\n",
      "Historical B\n",
      "Subj: Fairy tales B\n",
      "Subj: Detective B\n",
      "Domestic B\n",
      "Mystery B\n",
      "Subj: Horror B\n",
      "Subj: SF, Other B\n",
      "Subj: Short stories, Other B\n",
      "Subj: Man-woman B\n",
      "Love B\n",
      "Subj: History B\n",
      "Suspense B\n",
      "Subj: Juvenile B\n",
      "Psychological B\n"
     ]
    }
   ],
   "source": [
    "# Normalized topic vectors\n",
    "\n",
    "errors = set()\n",
    "    \n",
    "def sum_genre_normalized(meta, thisgenre, notthisgenre, lda):\n",
    "    ''' Sums volumes that have thisgenre but \n",
    "    not notthisgenre.\n",
    "    '''\n",
    "    global errors, avgfreqs\n",
    "    thesedocs = meta.apply(has_genre, args = ([thisgenre]), axis = 1)\n",
    "    \n",
    "    if notthisgenre == 'self':\n",
    "        notthesedocs = set()\n",
    "    else:\n",
    "        notthesedocs = meta.apply(has_genre, args = ([notthisgenre]), axis = 1)\n",
    "    \n",
    "    supplement_name = thisgenre + '-Not-' + notthisgenre\n",
    "    supplementdocs = meta.apply(has_genre, args = ([supplement_name]), axis = 1)\n",
    "    \n",
    "    difference = set(thesedocs) - set(notthesedocs)\n",
    "    genredocs = difference.union(set(supplementdocs))\n",
    "    genredocs.remove(None)\n",
    "    \n",
    "    vector = np.zeros(100)\n",
    "    count = 0\n",
    "    for g in genredocs:\n",
    "        if g in lda.index:\n",
    "            thisdoc = lda.loc[g, : ]\n",
    "            thisdate = int(meta.loc[meta.docid == g, 'firstpub'])\n",
    "            normalized = thisdoc - avgfreqs[thisdate]\n",
    "            \n",
    "            vector = vector + normalized\n",
    "            count += 1\n",
    "        else:\n",
    "            errors.add(g)\n",
    "            \n",
    "    if count > 0:\n",
    "        return vector / count\n",
    "    else:\n",
    "        print('zero count', len(errors), len(genredocs))\n",
    "        return float('nan')\n",
    "\n",
    "normal_vectors = dict()\n",
    "\n",
    "for g1 in genrenames:\n",
    "    print(g1)\n",
    "    normal_vectors[g1] = dict()\n",
    "    for g2 in genrenames:\n",
    "        intersected = g1 + '-Not-' + g2\n",
    "        \n",
    "        if g1 == g2:\n",
    "            g2 = 'self'\n",
    "        elif intersected not in intersection_genres:\n",
    "            continue\n",
    "            \n",
    "        if g2.endswith(' B'):\n",
    "            continue\n",
    "        tvec = sum_genre_normalized(meta, g1, g2, lda)\n",
    "        if np.isnan(np.sum(tvec)):\n",
    "            print('error', g1, g2)\n",
    "        normal_vectors[g1][g2] = tvec\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Adventure</th>\n",
       "      <th>Bildungsroman</th>\n",
       "      <th>Biographical</th>\n",
       "      <th>Christian</th>\n",
       "      <th>Domestic</th>\n",
       "      <th>Fantasy</th>\n",
       "      <th>Historical</th>\n",
       "      <th>Horror</th>\n",
       "      <th>Humor</th>\n",
       "      <th>Juvenile</th>\n",
       "      <th>...</th>\n",
       "      <th>Subj: Humor</th>\n",
       "      <th>Subj: Juvenile</th>\n",
       "      <th>Subj: Man-woman</th>\n",
       "      <th>Subj: SF, American</th>\n",
       "      <th>Subj: SF, Other</th>\n",
       "      <th>Subj: Short stories, American</th>\n",
       "      <th>Subj: Short stories, Other</th>\n",
       "      <th>Suspense</th>\n",
       "      <th>War</th>\n",
       "      <th>Western</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Adventure</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.375200</td>\n",
       "      <td>1.090688</td>\n",
       "      <td>1.090474</td>\n",
       "      <td>1.390811</td>\n",
       "      <td>0.777705</td>\n",
       "      <td>0.920147</td>\n",
       "      <td>0.697203</td>\n",
       "      <td>1.248436</td>\n",
       "      <td>0.739829</td>\n",
       "      <td>...</td>\n",
       "      <td>0.953013</td>\n",
       "      <td>0.838118</td>\n",
       "      <td>1.530562</td>\n",
       "      <td>0.750576</td>\n",
       "      <td>0.743877</td>\n",
       "      <td>1.093652</td>\n",
       "      <td>1.304505</td>\n",
       "      <td>0.395394</td>\n",
       "      <td>0.535788</td>\n",
       "      <td>0.706236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bildungsroman</th>\n",
       "      <td>1.375200</td>\n",
       "      <td>0.048870</td>\n",
       "      <td>1.182635</td>\n",
       "      <td>1.035123</td>\n",
       "      <td>0.051953</td>\n",
       "      <td>1.499181</td>\n",
       "      <td>1.328811</td>\n",
       "      <td>1.225447</td>\n",
       "      <td>0.717542</td>\n",
       "      <td>0.973088</td>\n",
       "      <td>...</td>\n",
       "      <td>0.986731</td>\n",
       "      <td>0.791740</td>\n",
       "      <td>0.516955</td>\n",
       "      <td>1.260947</td>\n",
       "      <td>1.330959</td>\n",
       "      <td>0.167676</td>\n",
       "      <td>0.850723</td>\n",
       "      <td>1.220929</td>\n",
       "      <td>1.273984</td>\n",
       "      <td>1.143728</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Biographical</th>\n",
       "      <td>1.090688</td>\n",
       "      <td>1.182635</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.677255</td>\n",
       "      <td>1.281870</td>\n",
       "      <td>0.438637</td>\n",
       "      <td>0.128014</td>\n",
       "      <td>1.125738</td>\n",
       "      <td>1.388342</td>\n",
       "      <td>0.946299</td>\n",
       "      <td>...</td>\n",
       "      <td>1.172172</td>\n",
       "      <td>0.997957</td>\n",
       "      <td>1.276834</td>\n",
       "      <td>1.203688</td>\n",
       "      <td>1.247975</td>\n",
       "      <td>1.210404</td>\n",
       "      <td>0.597149</td>\n",
       "      <td>1.514172</td>\n",
       "      <td>0.759256</td>\n",
       "      <td>0.896298</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Christian</th>\n",
       "      <td>1.090474</td>\n",
       "      <td>1.035123</td>\n",
       "      <td>0.677255</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.067635</td>\n",
       "      <td>0.829233</td>\n",
       "      <td>0.555162</td>\n",
       "      <td>1.065289</td>\n",
       "      <td>1.022057</td>\n",
       "      <td>1.091230</td>\n",
       "      <td>...</td>\n",
       "      <td>1.173385</td>\n",
       "      <td>1.156622</td>\n",
       "      <td>0.773028</td>\n",
       "      <td>1.246010</td>\n",
       "      <td>1.252488</td>\n",
       "      <td>1.243197</td>\n",
       "      <td>1.252187</td>\n",
       "      <td>0.966429</td>\n",
       "      <td>1.064673</td>\n",
       "      <td>1.019380</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Domestic</th>\n",
       "      <td>1.390811</td>\n",
       "      <td>0.051953</td>\n",
       "      <td>1.281870</td>\n",
       "      <td>1.067635</td>\n",
       "      <td>0.046802</td>\n",
       "      <td>1.633304</td>\n",
       "      <td>1.374270</td>\n",
       "      <td>1.336332</td>\n",
       "      <td>0.728148</td>\n",
       "      <td>0.907194</td>\n",
       "      <td>...</td>\n",
       "      <td>1.022642</td>\n",
       "      <td>0.745287</td>\n",
       "      <td>0.489887</td>\n",
       "      <td>1.281654</td>\n",
       "      <td>1.320953</td>\n",
       "      <td>0.266229</td>\n",
       "      <td>0.889054</td>\n",
       "      <td>1.062773</td>\n",
       "      <td>1.267809</td>\n",
       "      <td>1.136656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fantasy</th>\n",
       "      <td>0.777705</td>\n",
       "      <td>1.499181</td>\n",
       "      <td>0.438637</td>\n",
       "      <td>0.829233</td>\n",
       "      <td>1.633304</td>\n",
       "      <td>0.025287</td>\n",
       "      <td>0.334170</td>\n",
       "      <td>0.411371</td>\n",
       "      <td>1.605176</td>\n",
       "      <td>1.063099</td>\n",
       "      <td>...</td>\n",
       "      <td>1.316038</td>\n",
       "      <td>1.062125</td>\n",
       "      <td>1.539946</td>\n",
       "      <td>0.698662</td>\n",
       "      <td>0.754531</td>\n",
       "      <td>1.392158</td>\n",
       "      <td>1.168158</td>\n",
       "      <td>1.218685</td>\n",
       "      <td>0.851319</td>\n",
       "      <td>0.732397</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Historical</th>\n",
       "      <td>0.920147</td>\n",
       "      <td>1.328811</td>\n",
       "      <td>0.128014</td>\n",
       "      <td>0.555162</td>\n",
       "      <td>1.374270</td>\n",
       "      <td>0.334170</td>\n",
       "      <td>0.078223</td>\n",
       "      <td>0.985111</td>\n",
       "      <td>1.607434</td>\n",
       "      <td>0.781250</td>\n",
       "      <td>...</td>\n",
       "      <td>1.219302</td>\n",
       "      <td>0.902402</td>\n",
       "      <td>1.457691</td>\n",
       "      <td>1.139786</td>\n",
       "      <td>1.183886</td>\n",
       "      <td>1.282243</td>\n",
       "      <td>0.865257</td>\n",
       "      <td>1.272549</td>\n",
       "      <td>0.670122</td>\n",
       "      <td>0.561604</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Horror</th>\n",
       "      <td>0.697203</td>\n",
       "      <td>1.225447</td>\n",
       "      <td>1.125738</td>\n",
       "      <td>1.065289</td>\n",
       "      <td>1.336332</td>\n",
       "      <td>0.411371</td>\n",
       "      <td>0.985111</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.268557</td>\n",
       "      <td>1.246406</td>\n",
       "      <td>...</td>\n",
       "      <td>1.210462</td>\n",
       "      <td>1.269474</td>\n",
       "      <td>1.181344</td>\n",
       "      <td>0.702263</td>\n",
       "      <td>0.738515</td>\n",
       "      <td>1.047292</td>\n",
       "      <td>1.316164</td>\n",
       "      <td>0.899935</td>\n",
       "      <td>1.066339</td>\n",
       "      <td>0.878808</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Humor</th>\n",
       "      <td>1.248436</td>\n",
       "      <td>0.717542</td>\n",
       "      <td>1.388342</td>\n",
       "      <td>1.022057</td>\n",
       "      <td>0.728148</td>\n",
       "      <td>1.605176</td>\n",
       "      <td>1.607434</td>\n",
       "      <td>1.268557</td>\n",
       "      <td>0.046133</td>\n",
       "      <td>1.096678</td>\n",
       "      <td>...</td>\n",
       "      <td>0.389985</td>\n",
       "      <td>1.166835</td>\n",
       "      <td>0.398340</td>\n",
       "      <td>1.206830</td>\n",
       "      <td>1.189944</td>\n",
       "      <td>0.786013</td>\n",
       "      <td>1.032447</td>\n",
       "      <td>1.031904</td>\n",
       "      <td>1.337105</td>\n",
       "      <td>1.328879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Juvenile</th>\n",
       "      <td>0.739829</td>\n",
       "      <td>0.973088</td>\n",
       "      <td>0.946299</td>\n",
       "      <td>1.091230</td>\n",
       "      <td>0.907194</td>\n",
       "      <td>1.063099</td>\n",
       "      <td>0.781250</td>\n",
       "      <td>1.246406</td>\n",
       "      <td>1.096678</td>\n",
       "      <td>0.437143</td>\n",
       "      <td>...</td>\n",
       "      <td>0.897124</td>\n",
       "      <td>0.200799</td>\n",
       "      <td>1.376241</td>\n",
       "      <td>1.069515</td>\n",
       "      <td>1.074752</td>\n",
       "      <td>1.052329</td>\n",
       "      <td>1.051224</td>\n",
       "      <td>0.913928</td>\n",
       "      <td>0.390476</td>\n",
       "      <td>0.592424</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Love</th>\n",
       "      <td>1.404619</td>\n",
       "      <td>0.391035</td>\n",
       "      <td>1.279202</td>\n",
       "      <td>0.792400</td>\n",
       "      <td>0.339592</td>\n",
       "      <td>1.586578</td>\n",
       "      <td>1.411441</td>\n",
       "      <td>1.199939</td>\n",
       "      <td>0.476554</td>\n",
       "      <td>1.154708</td>\n",
       "      <td>...</td>\n",
       "      <td>1.103154</td>\n",
       "      <td>1.108247</td>\n",
       "      <td>0.083340</td>\n",
       "      <td>1.431328</td>\n",
       "      <td>1.421720</td>\n",
       "      <td>0.679508</td>\n",
       "      <td>0.893139</td>\n",
       "      <td>0.945160</td>\n",
       "      <td>1.349518</td>\n",
       "      <td>1.195747</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mystery</th>\n",
       "      <td>0.932526</td>\n",
       "      <td>1.119934</td>\n",
       "      <td>1.563072</td>\n",
       "      <td>0.955240</td>\n",
       "      <td>0.910726</td>\n",
       "      <td>1.357427</td>\n",
       "      <td>1.313433</td>\n",
       "      <td>0.993873</td>\n",
       "      <td>0.866817</td>\n",
       "      <td>0.952110</td>\n",
       "      <td>...</td>\n",
       "      <td>0.800094</td>\n",
       "      <td>1.178195</td>\n",
       "      <td>0.778872</td>\n",
       "      <td>1.237346</td>\n",
       "      <td>1.153971</td>\n",
       "      <td>1.172819</td>\n",
       "      <td>1.416470</td>\n",
       "      <td>0.227160</td>\n",
       "      <td>1.122855</td>\n",
       "      <td>1.077007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Novel</th>\n",
       "      <td>1.288897</td>\n",
       "      <td>1.391979</td>\n",
       "      <td>0.591289</td>\n",
       "      <td>0.703396</td>\n",
       "      <td>1.444399</td>\n",
       "      <td>0.911740</td>\n",
       "      <td>0.659205</td>\n",
       "      <td>1.079838</td>\n",
       "      <td>1.020892</td>\n",
       "      <td>1.325148</td>\n",
       "      <td>...</td>\n",
       "      <td>0.855437</td>\n",
       "      <td>1.631067</td>\n",
       "      <td>0.825044</td>\n",
       "      <td>1.243950</td>\n",
       "      <td>1.186247</td>\n",
       "      <td>1.400861</td>\n",
       "      <td>0.647046</td>\n",
       "      <td>1.200648</td>\n",
       "      <td>1.001797</td>\n",
       "      <td>1.205312</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Political</th>\n",
       "      <td>0.760751</td>\n",
       "      <td>1.270280</td>\n",
       "      <td>0.985147</td>\n",
       "      <td>0.821255</td>\n",
       "      <td>1.242615</td>\n",
       "      <td>1.288967</td>\n",
       "      <td>1.131824</td>\n",
       "      <td>1.373284</td>\n",
       "      <td>0.662339</td>\n",
       "      <td>1.134473</td>\n",
       "      <td>...</td>\n",
       "      <td>0.680689</td>\n",
       "      <td>1.288547</td>\n",
       "      <td>0.897670</td>\n",
       "      <td>1.231605</td>\n",
       "      <td>1.153413</td>\n",
       "      <td>1.218388</td>\n",
       "      <td>0.992919</td>\n",
       "      <td>0.666576</td>\n",
       "      <td>0.816596</td>\n",
       "      <td>1.243525</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Psychological</th>\n",
       "      <td>1.451919</td>\n",
       "      <td>0.283212</td>\n",
       "      <td>1.582253</td>\n",
       "      <td>1.099716</td>\n",
       "      <td>0.214562</td>\n",
       "      <td>1.774839</td>\n",
       "      <td>1.694937</td>\n",
       "      <td>1.225104</td>\n",
       "      <td>0.402291</td>\n",
       "      <td>1.087429</td>\n",
       "      <td>...</td>\n",
       "      <td>0.900764</td>\n",
       "      <td>1.045135</td>\n",
       "      <td>0.253442</td>\n",
       "      <td>1.307496</td>\n",
       "      <td>1.284041</td>\n",
       "      <td>0.460944</td>\n",
       "      <td>1.015520</td>\n",
       "      <td>0.900768</td>\n",
       "      <td>1.379233</td>\n",
       "      <td>1.258955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SF</th>\n",
       "      <td>0.553375</td>\n",
       "      <td>1.502542</td>\n",
       "      <td>1.147178</td>\n",
       "      <td>1.179886</td>\n",
       "      <td>1.501906</td>\n",
       "      <td>0.657203</td>\n",
       "      <td>1.056814</td>\n",
       "      <td>0.728090</td>\n",
       "      <td>1.262396</td>\n",
       "      <td>1.059223</td>\n",
       "      <td>...</td>\n",
       "      <td>1.057448</td>\n",
       "      <td>1.087536</td>\n",
       "      <td>1.408972</td>\n",
       "      <td>0.068102</td>\n",
       "      <td>0.048156</td>\n",
       "      <td>1.343469</td>\n",
       "      <td>1.400358</td>\n",
       "      <td>0.842768</td>\n",
       "      <td>0.868885</td>\n",
       "      <td>1.015550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Short stories</th>\n",
       "      <td>1.356985</td>\n",
       "      <td>0.590702</td>\n",
       "      <td>0.775531</td>\n",
       "      <td>1.443860</td>\n",
       "      <td>0.740672</td>\n",
       "      <td>1.020139</td>\n",
       "      <td>1.037618</td>\n",
       "      <td>0.986126</td>\n",
       "      <td>1.028315</td>\n",
       "      <td>1.217162</td>\n",
       "      <td>...</td>\n",
       "      <td>0.982235</td>\n",
       "      <td>1.039662</td>\n",
       "      <td>1.059871</td>\n",
       "      <td>1.192007</td>\n",
       "      <td>1.223464</td>\n",
       "      <td>0.444935</td>\n",
       "      <td>0.273412</td>\n",
       "      <td>1.677839</td>\n",
       "      <td>1.188912</td>\n",
       "      <td>1.127243</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Detective</th>\n",
       "      <td>0.997704</td>\n",
       "      <td>1.187936</td>\n",
       "      <td>1.461630</td>\n",
       "      <td>1.020041</td>\n",
       "      <td>1.018871</td>\n",
       "      <td>1.244486</td>\n",
       "      <td>1.197128</td>\n",
       "      <td>0.917779</td>\n",
       "      <td>0.933081</td>\n",
       "      <td>1.060511</td>\n",
       "      <td>...</td>\n",
       "      <td>0.724282</td>\n",
       "      <td>1.311138</td>\n",
       "      <td>0.909354</td>\n",
       "      <td>1.240674</td>\n",
       "      <td>1.173569</td>\n",
       "      <td>1.119236</td>\n",
       "      <td>1.279696</td>\n",
       "      <td>0.375517</td>\n",
       "      <td>1.151020</td>\n",
       "      <td>1.073236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Fairy tales</th>\n",
       "      <td>1.103485</td>\n",
       "      <td>1.171424</td>\n",
       "      <td>1.019498</td>\n",
       "      <td>1.201430</td>\n",
       "      <td>1.146905</td>\n",
       "      <td>0.884101</td>\n",
       "      <td>1.082812</td>\n",
       "      <td>1.073386</td>\n",
       "      <td>1.142222</td>\n",
       "      <td>0.999816</td>\n",
       "      <td>...</td>\n",
       "      <td>1.291238</td>\n",
       "      <td>0.603223</td>\n",
       "      <td>1.277171</td>\n",
       "      <td>1.037322</td>\n",
       "      <td>1.061496</td>\n",
       "      <td>1.320674</td>\n",
       "      <td>1.039184</td>\n",
       "      <td>1.103921</td>\n",
       "      <td>1.130254</td>\n",
       "      <td>1.139731</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Fantasy</th>\n",
       "      <td>0.839819</td>\n",
       "      <td>1.268057</td>\n",
       "      <td>0.879226</td>\n",
       "      <td>1.109210</td>\n",
       "      <td>1.420019</td>\n",
       "      <td>0.249950</td>\n",
       "      <td>0.785264</td>\n",
       "      <td>0.268095</td>\n",
       "      <td>1.465118</td>\n",
       "      <td>1.223745</td>\n",
       "      <td>...</td>\n",
       "      <td>1.299787</td>\n",
       "      <td>1.033501</td>\n",
       "      <td>1.556503</td>\n",
       "      <td>0.663960</td>\n",
       "      <td>0.727367</td>\n",
       "      <td>1.036425</td>\n",
       "      <td>1.192350</td>\n",
       "      <td>1.241712</td>\n",
       "      <td>1.058427</td>\n",
       "      <td>0.914391</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: History</th>\n",
       "      <td>0.740865</td>\n",
       "      <td>1.244906</td>\n",
       "      <td>0.476574</td>\n",
       "      <td>0.741145</td>\n",
       "      <td>1.239403</td>\n",
       "      <td>0.726332</td>\n",
       "      <td>0.461033</td>\n",
       "      <td>1.012042</td>\n",
       "      <td>1.246595</td>\n",
       "      <td>0.524075</td>\n",
       "      <td>...</td>\n",
       "      <td>1.128147</td>\n",
       "      <td>0.840535</td>\n",
       "      <td>1.355357</td>\n",
       "      <td>1.122626</td>\n",
       "      <td>1.101091</td>\n",
       "      <td>1.217846</td>\n",
       "      <td>0.870761</td>\n",
       "      <td>1.098615</td>\n",
       "      <td>0.270344</td>\n",
       "      <td>0.849443</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Horror</th>\n",
       "      <td>0.880929</td>\n",
       "      <td>1.207681</td>\n",
       "      <td>1.010024</td>\n",
       "      <td>1.131032</td>\n",
       "      <td>1.344472</td>\n",
       "      <td>0.560443</td>\n",
       "      <td>0.897829</td>\n",
       "      <td>0.330966</td>\n",
       "      <td>1.368093</td>\n",
       "      <td>1.418705</td>\n",
       "      <td>...</td>\n",
       "      <td>1.181351</td>\n",
       "      <td>1.437266</td>\n",
       "      <td>1.272601</td>\n",
       "      <td>0.863487</td>\n",
       "      <td>0.852857</td>\n",
       "      <td>0.836493</td>\n",
       "      <td>0.950851</td>\n",
       "      <td>1.133118</td>\n",
       "      <td>1.051627</td>\n",
       "      <td>0.917277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Humor</th>\n",
       "      <td>0.953013</td>\n",
       "      <td>0.986731</td>\n",
       "      <td>1.172172</td>\n",
       "      <td>1.173385</td>\n",
       "      <td>1.022642</td>\n",
       "      <td>1.316038</td>\n",
       "      <td>1.219302</td>\n",
       "      <td>1.210462</td>\n",
       "      <td>0.389985</td>\n",
       "      <td>0.897124</td>\n",
       "      <td>...</td>\n",
       "      <td>0.023327</td>\n",
       "      <td>1.175637</td>\n",
       "      <td>1.032787</td>\n",
       "      <td>1.069485</td>\n",
       "      <td>1.074410</td>\n",
       "      <td>0.791469</td>\n",
       "      <td>0.957353</td>\n",
       "      <td>0.993490</td>\n",
       "      <td>1.136787</td>\n",
       "      <td>1.045245</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Juvenile</th>\n",
       "      <td>0.838118</td>\n",
       "      <td>0.791740</td>\n",
       "      <td>0.997957</td>\n",
       "      <td>1.156622</td>\n",
       "      <td>0.745287</td>\n",
       "      <td>1.062125</td>\n",
       "      <td>0.902402</td>\n",
       "      <td>1.269474</td>\n",
       "      <td>1.166835</td>\n",
       "      <td>0.200799</td>\n",
       "      <td>...</td>\n",
       "      <td>1.175637</td>\n",
       "      <td>0.047321</td>\n",
       "      <td>1.344232</td>\n",
       "      <td>1.023004</td>\n",
       "      <td>1.094787</td>\n",
       "      <td>0.960485</td>\n",
       "      <td>1.104837</td>\n",
       "      <td>1.034262</td>\n",
       "      <td>0.692442</td>\n",
       "      <td>0.613914</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Man-woman</th>\n",
       "      <td>1.530562</td>\n",
       "      <td>0.516955</td>\n",
       "      <td>1.276834</td>\n",
       "      <td>0.773028</td>\n",
       "      <td>0.489887</td>\n",
       "      <td>1.539946</td>\n",
       "      <td>1.457691</td>\n",
       "      <td>1.181344</td>\n",
       "      <td>0.398340</td>\n",
       "      <td>1.376241</td>\n",
       "      <td>...</td>\n",
       "      <td>1.032787</td>\n",
       "      <td>1.344232</td>\n",
       "      <td>0.048320</td>\n",
       "      <td>1.333503</td>\n",
       "      <td>1.315324</td>\n",
       "      <td>0.821229</td>\n",
       "      <td>0.974368</td>\n",
       "      <td>1.005327</td>\n",
       "      <td>1.383303</td>\n",
       "      <td>1.348799</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: SF, American</th>\n",
       "      <td>0.750576</td>\n",
       "      <td>1.260947</td>\n",
       "      <td>1.203688</td>\n",
       "      <td>1.246010</td>\n",
       "      <td>1.281654</td>\n",
       "      <td>0.698662</td>\n",
       "      <td>1.139786</td>\n",
       "      <td>0.702263</td>\n",
       "      <td>1.206830</td>\n",
       "      <td>1.069515</td>\n",
       "      <td>...</td>\n",
       "      <td>1.069485</td>\n",
       "      <td>1.023004</td>\n",
       "      <td>1.333503</td>\n",
       "      <td>0.017206</td>\n",
       "      <td>0.010873</td>\n",
       "      <td>1.105802</td>\n",
       "      <td>1.384696</td>\n",
       "      <td>1.058731</td>\n",
       "      <td>1.015579</td>\n",
       "      <td>0.993302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: SF, Other</th>\n",
       "      <td>0.743877</td>\n",
       "      <td>1.330959</td>\n",
       "      <td>1.247975</td>\n",
       "      <td>1.252488</td>\n",
       "      <td>1.320953</td>\n",
       "      <td>0.754531</td>\n",
       "      <td>1.183886</td>\n",
       "      <td>0.738515</td>\n",
       "      <td>1.189944</td>\n",
       "      <td>1.074752</td>\n",
       "      <td>...</td>\n",
       "      <td>1.074410</td>\n",
       "      <td>1.094787</td>\n",
       "      <td>1.315324</td>\n",
       "      <td>0.010873</td>\n",
       "      <td>0.011522</td>\n",
       "      <td>1.210990</td>\n",
       "      <td>1.368070</td>\n",
       "      <td>0.988589</td>\n",
       "      <td>0.998778</td>\n",
       "      <td>1.027818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Short stories, American</th>\n",
       "      <td>1.093652</td>\n",
       "      <td>0.167676</td>\n",
       "      <td>1.210404</td>\n",
       "      <td>1.243197</td>\n",
       "      <td>0.266229</td>\n",
       "      <td>1.392158</td>\n",
       "      <td>1.282243</td>\n",
       "      <td>1.047292</td>\n",
       "      <td>0.786013</td>\n",
       "      <td>1.052329</td>\n",
       "      <td>...</td>\n",
       "      <td>0.791469</td>\n",
       "      <td>0.960485</td>\n",
       "      <td>0.821229</td>\n",
       "      <td>1.105802</td>\n",
       "      <td>1.210990</td>\n",
       "      <td>0.034200</td>\n",
       "      <td>0.799224</td>\n",
       "      <td>1.218772</td>\n",
       "      <td>1.208171</td>\n",
       "      <td>0.950188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Subj: Short stories, Other</th>\n",
       "      <td>1.304505</td>\n",
       "      <td>0.850723</td>\n",
       "      <td>0.597149</td>\n",
       "      <td>1.252187</td>\n",
       "      <td>0.889054</td>\n",
       "      <td>1.168158</td>\n",
       "      <td>0.865257</td>\n",
       "      <td>1.316164</td>\n",
       "      <td>1.032447</td>\n",
       "      <td>1.051224</td>\n",
       "      <td>...</td>\n",
       "      <td>0.957353</td>\n",
       "      <td>1.104837</td>\n",
       "      <td>0.974368</td>\n",
       "      <td>1.384696</td>\n",
       "      <td>1.368070</td>\n",
       "      <td>0.799224</td>\n",
       "      <td>0.027920</td>\n",
       "      <td>1.487203</td>\n",
       "      <td>0.921068</td>\n",
       "      <td>1.097782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Suspense</th>\n",
       "      <td>0.395394</td>\n",
       "      <td>1.220929</td>\n",
       "      <td>1.514172</td>\n",
       "      <td>0.966429</td>\n",
       "      <td>1.062773</td>\n",
       "      <td>1.218685</td>\n",
       "      <td>1.272549</td>\n",
       "      <td>0.899935</td>\n",
       "      <td>1.031904</td>\n",
       "      <td>0.913928</td>\n",
       "      <td>...</td>\n",
       "      <td>0.993490</td>\n",
       "      <td>1.034262</td>\n",
       "      <td>1.005327</td>\n",
       "      <td>1.058731</td>\n",
       "      <td>0.988589</td>\n",
       "      <td>1.218772</td>\n",
       "      <td>1.487203</td>\n",
       "      <td>0.039120</td>\n",
       "      <td>0.861483</td>\n",
       "      <td>1.026185</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>War</th>\n",
       "      <td>0.535788</td>\n",
       "      <td>1.273984</td>\n",
       "      <td>0.759256</td>\n",
       "      <td>1.064673</td>\n",
       "      <td>1.267809</td>\n",
       "      <td>0.851319</td>\n",
       "      <td>0.670122</td>\n",
       "      <td>1.066339</td>\n",
       "      <td>1.337105</td>\n",
       "      <td>0.390476</td>\n",
       "      <td>...</td>\n",
       "      <td>1.136787</td>\n",
       "      <td>0.692442</td>\n",
       "      <td>1.383303</td>\n",
       "      <td>1.015579</td>\n",
       "      <td>0.998778</td>\n",
       "      <td>1.208171</td>\n",
       "      <td>0.921068</td>\n",
       "      <td>0.861483</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.886739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Western</th>\n",
       "      <td>0.706236</td>\n",
       "      <td>1.143728</td>\n",
       "      <td>0.896298</td>\n",
       "      <td>1.019380</td>\n",
       "      <td>1.136656</td>\n",
       "      <td>0.732397</td>\n",
       "      <td>0.561604</td>\n",
       "      <td>0.878808</td>\n",
       "      <td>1.328879</td>\n",
       "      <td>0.592424</td>\n",
       "      <td>...</td>\n",
       "      <td>1.045245</td>\n",
       "      <td>0.613914</td>\n",
       "      <td>1.348799</td>\n",
       "      <td>0.993302</td>\n",
       "      <td>1.027818</td>\n",
       "      <td>0.950188</td>\n",
       "      <td>1.097782</td>\n",
       "      <td>1.026185</td>\n",
       "      <td>0.886739</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>32 rows × 32 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Adventure  Bildungsroman  Biographical  \\\n",
       "Adventure                       0.000000       1.375200      1.090688   \n",
       "Bildungsroman                   1.375200       0.048870      1.182635   \n",
       "Biographical                    1.090688       1.182635      0.000000   \n",
       "Christian                       1.090474       1.035123      0.677255   \n",
       "Domestic                        1.390811       0.051953      1.281870   \n",
       "Fantasy                         0.777705       1.499181      0.438637   \n",
       "Historical                      0.920147       1.328811      0.128014   \n",
       "Horror                          0.697203       1.225447      1.125738   \n",
       "Humor                           1.248436       0.717542      1.388342   \n",
       "Juvenile                        0.739829       0.973088      0.946299   \n",
       "Love                            1.404619       0.391035      1.279202   \n",
       "Mystery                         0.932526       1.119934      1.563072   \n",
       "Novel                           1.288897       1.391979      0.591289   \n",
       "Political                       0.760751       1.270280      0.985147   \n",
       "Psychological                   1.451919       0.283212      1.582253   \n",
       "SF                              0.553375       1.502542      1.147178   \n",
       "Short stories                   1.356985       0.590702      0.775531   \n",
       "Subj: Detective                 0.997704       1.187936      1.461630   \n",
       "Subj: Fairy tales               1.103485       1.171424      1.019498   \n",
       "Subj: Fantasy                   0.839819       1.268057      0.879226   \n",
       "Subj: History                   0.740865       1.244906      0.476574   \n",
       "Subj: Horror                    0.880929       1.207681      1.010024   \n",
       "Subj: Humor                     0.953013       0.986731      1.172172   \n",
       "Subj: Juvenile                  0.838118       0.791740      0.997957   \n",
       "Subj: Man-woman                 1.530562       0.516955      1.276834   \n",
       "Subj: SF, American              0.750576       1.260947      1.203688   \n",
       "Subj: SF, Other                 0.743877       1.330959      1.247975   \n",
       "Subj: Short stories, American   1.093652       0.167676      1.210404   \n",
       "Subj: Short stories, Other      1.304505       0.850723      0.597149   \n",
       "Suspense                        0.395394       1.220929      1.514172   \n",
       "War                             0.535788       1.273984      0.759256   \n",
       "Western                         0.706236       1.143728      0.896298   \n",
       "\n",
       "                               Christian  Domestic   Fantasy  Historical  \\\n",
       "Adventure                       1.090474  1.390811  0.777705    0.920147   \n",
       "Bildungsroman                   1.035123  0.051953  1.499181    1.328811   \n",
       "Biographical                    0.677255  1.281870  0.438637    0.128014   \n",
       "Christian                       0.000000  1.067635  0.829233    0.555162   \n",
       "Domestic                        1.067635  0.046802  1.633304    1.374270   \n",
       "Fantasy                         0.829233  1.633304  0.025287    0.334170   \n",
       "Historical                      0.555162  1.374270  0.334170    0.078223   \n",
       "Horror                          1.065289  1.336332  0.411371    0.985111   \n",
       "Humor                           1.022057  0.728148  1.605176    1.607434   \n",
       "Juvenile                        1.091230  0.907194  1.063099    0.781250   \n",
       "Love                            0.792400  0.339592  1.586578    1.411441   \n",
       "Mystery                         0.955240  0.910726  1.357427    1.313433   \n",
       "Novel                           0.703396  1.444399  0.911740    0.659205   \n",
       "Political                       0.821255  1.242615  1.288967    1.131824   \n",
       "Psychological                   1.099716  0.214562  1.774839    1.694937   \n",
       "SF                              1.179886  1.501906  0.657203    1.056814   \n",
       "Short stories                   1.443860  0.740672  1.020139    1.037618   \n",
       "Subj: Detective                 1.020041  1.018871  1.244486    1.197128   \n",
       "Subj: Fairy tales               1.201430  1.146905  0.884101    1.082812   \n",
       "Subj: Fantasy                   1.109210  1.420019  0.249950    0.785264   \n",
       "Subj: History                   0.741145  1.239403  0.726332    0.461033   \n",
       "Subj: Horror                    1.131032  1.344472  0.560443    0.897829   \n",
       "Subj: Humor                     1.173385  1.022642  1.316038    1.219302   \n",
       "Subj: Juvenile                  1.156622  0.745287  1.062125    0.902402   \n",
       "Subj: Man-woman                 0.773028  0.489887  1.539946    1.457691   \n",
       "Subj: SF, American              1.246010  1.281654  0.698662    1.139786   \n",
       "Subj: SF, Other                 1.252488  1.320953  0.754531    1.183886   \n",
       "Subj: Short stories, American   1.243197  0.266229  1.392158    1.282243   \n",
       "Subj: Short stories, Other      1.252187  0.889054  1.168158    0.865257   \n",
       "Suspense                        0.966429  1.062773  1.218685    1.272549   \n",
       "War                             1.064673  1.267809  0.851319    0.670122   \n",
       "Western                         1.019380  1.136656  0.732397    0.561604   \n",
       "\n",
       "                                 Horror     Humor  Juvenile    ...     \\\n",
       "Adventure                      0.697203  1.248436  0.739829    ...      \n",
       "Bildungsroman                  1.225447  0.717542  0.973088    ...      \n",
       "Biographical                   1.125738  1.388342  0.946299    ...      \n",
       "Christian                      1.065289  1.022057  1.091230    ...      \n",
       "Domestic                       1.336332  0.728148  0.907194    ...      \n",
       "Fantasy                        0.411371  1.605176  1.063099    ...      \n",
       "Historical                     0.985111  1.607434  0.781250    ...      \n",
       "Horror                         0.000000  1.268557  1.246406    ...      \n",
       "Humor                          1.268557  0.046133  1.096678    ...      \n",
       "Juvenile                       1.246406  1.096678  0.437143    ...      \n",
       "Love                           1.199939  0.476554  1.154708    ...      \n",
       "Mystery                        0.993873  0.866817  0.952110    ...      \n",
       "Novel                          1.079838  1.020892  1.325148    ...      \n",
       "Political                      1.373284  0.662339  1.134473    ...      \n",
       "Psychological                  1.225104  0.402291  1.087429    ...      \n",
       "SF                             0.728090  1.262396  1.059223    ...      \n",
       "Short stories                  0.986126  1.028315  1.217162    ...      \n",
       "Subj: Detective                0.917779  0.933081  1.060511    ...      \n",
       "Subj: Fairy tales              1.073386  1.142222  0.999816    ...      \n",
       "Subj: Fantasy                  0.268095  1.465118  1.223745    ...      \n",
       "Subj: History                  1.012042  1.246595  0.524075    ...      \n",
       "Subj: Horror                   0.330966  1.368093  1.418705    ...      \n",
       "Subj: Humor                    1.210462  0.389985  0.897124    ...      \n",
       "Subj: Juvenile                 1.269474  1.166835  0.200799    ...      \n",
       "Subj: Man-woman                1.181344  0.398340  1.376241    ...      \n",
       "Subj: SF, American             0.702263  1.206830  1.069515    ...      \n",
       "Subj: SF, Other                0.738515  1.189944  1.074752    ...      \n",
       "Subj: Short stories, American  1.047292  0.786013  1.052329    ...      \n",
       "Subj: Short stories, Other     1.316164  1.032447  1.051224    ...      \n",
       "Suspense                       0.899935  1.031904  0.913928    ...      \n",
       "War                            1.066339  1.337105  0.390476    ...      \n",
       "Western                        0.878808  1.328879  0.592424    ...      \n",
       "\n",
       "                               Subj: Humor  Subj: Juvenile  Subj: Man-woman  \\\n",
       "Adventure                         0.953013        0.838118         1.530562   \n",
       "Bildungsroman                     0.986731        0.791740         0.516955   \n",
       "Biographical                      1.172172        0.997957         1.276834   \n",
       "Christian                         1.173385        1.156622         0.773028   \n",
       "Domestic                          1.022642        0.745287         0.489887   \n",
       "Fantasy                           1.316038        1.062125         1.539946   \n",
       "Historical                        1.219302        0.902402         1.457691   \n",
       "Horror                            1.210462        1.269474         1.181344   \n",
       "Humor                             0.389985        1.166835         0.398340   \n",
       "Juvenile                          0.897124        0.200799         1.376241   \n",
       "Love                              1.103154        1.108247         0.083340   \n",
       "Mystery                           0.800094        1.178195         0.778872   \n",
       "Novel                             0.855437        1.631067         0.825044   \n",
       "Political                         0.680689        1.288547         0.897670   \n",
       "Psychological                     0.900764        1.045135         0.253442   \n",
       "SF                                1.057448        1.087536         1.408972   \n",
       "Short stories                     0.982235        1.039662         1.059871   \n",
       "Subj: Detective                   0.724282        1.311138         0.909354   \n",
       "Subj: Fairy tales                 1.291238        0.603223         1.277171   \n",
       "Subj: Fantasy                     1.299787        1.033501         1.556503   \n",
       "Subj: History                     1.128147        0.840535         1.355357   \n",
       "Subj: Horror                      1.181351        1.437266         1.272601   \n",
       "Subj: Humor                       0.023327        1.175637         1.032787   \n",
       "Subj: Juvenile                    1.175637        0.047321         1.344232   \n",
       "Subj: Man-woman                   1.032787        1.344232         0.048320   \n",
       "Subj: SF, American                1.069485        1.023004         1.333503   \n",
       "Subj: SF, Other                   1.074410        1.094787         1.315324   \n",
       "Subj: Short stories, American     0.791469        0.960485         0.821229   \n",
       "Subj: Short stories, Other        0.957353        1.104837         0.974368   \n",
       "Suspense                          0.993490        1.034262         1.005327   \n",
       "War                               1.136787        0.692442         1.383303   \n",
       "Western                           1.045245        0.613914         1.348799   \n",
       "\n",
       "                               Subj: SF, American  Subj: SF, Other  \\\n",
       "Adventure                                0.750576         0.743877   \n",
       "Bildungsroman                            1.260947         1.330959   \n",
       "Biographical                             1.203688         1.247975   \n",
       "Christian                                1.246010         1.252488   \n",
       "Domestic                                 1.281654         1.320953   \n",
       "Fantasy                                  0.698662         0.754531   \n",
       "Historical                               1.139786         1.183886   \n",
       "Horror                                   0.702263         0.738515   \n",
       "Humor                                    1.206830         1.189944   \n",
       "Juvenile                                 1.069515         1.074752   \n",
       "Love                                     1.431328         1.421720   \n",
       "Mystery                                  1.237346         1.153971   \n",
       "Novel                                    1.243950         1.186247   \n",
       "Political                                1.231605         1.153413   \n",
       "Psychological                            1.307496         1.284041   \n",
       "SF                                       0.068102         0.048156   \n",
       "Short stories                            1.192007         1.223464   \n",
       "Subj: Detective                          1.240674         1.173569   \n",
       "Subj: Fairy tales                        1.037322         1.061496   \n",
       "Subj: Fantasy                            0.663960         0.727367   \n",
       "Subj: History                            1.122626         1.101091   \n",
       "Subj: Horror                             0.863487         0.852857   \n",
       "Subj: Humor                              1.069485         1.074410   \n",
       "Subj: Juvenile                           1.023004         1.094787   \n",
       "Subj: Man-woman                          1.333503         1.315324   \n",
       "Subj: SF, American                       0.017206         0.010873   \n",
       "Subj: SF, Other                          0.010873         0.011522   \n",
       "Subj: Short stories, American            1.105802         1.210990   \n",
       "Subj: Short stories, Other               1.384696         1.368070   \n",
       "Suspense                                 1.058731         0.988589   \n",
       "War                                      1.015579         0.998778   \n",
       "Western                                  0.993302         1.027818   \n",
       "\n",
       "                               Subj: Short stories, American  \\\n",
       "Adventure                                           1.093652   \n",
       "Bildungsroman                                       0.167676   \n",
       "Biographical                                        1.210404   \n",
       "Christian                                           1.243197   \n",
       "Domestic                                            0.266229   \n",
       "Fantasy                                             1.392158   \n",
       "Historical                                          1.282243   \n",
       "Horror                                              1.047292   \n",
       "Humor                                               0.786013   \n",
       "Juvenile                                            1.052329   \n",
       "Love                                                0.679508   \n",
       "Mystery                                             1.172819   \n",
       "Novel                                               1.400861   \n",
       "Political                                           1.218388   \n",
       "Psychological                                       0.460944   \n",
       "SF                                                  1.343469   \n",
       "Short stories                                       0.444935   \n",
       "Subj: Detective                                     1.119236   \n",
       "Subj: Fairy tales                                   1.320674   \n",
       "Subj: Fantasy                                       1.036425   \n",
       "Subj: History                                       1.217846   \n",
       "Subj: Horror                                        0.836493   \n",
       "Subj: Humor                                         0.791469   \n",
       "Subj: Juvenile                                      0.960485   \n",
       "Subj: Man-woman                                     0.821229   \n",
       "Subj: SF, American                                  1.105802   \n",
       "Subj: SF, Other                                     1.210990   \n",
       "Subj: Short stories, American                       0.034200   \n",
       "Subj: Short stories, Other                          0.799224   \n",
       "Suspense                                            1.218772   \n",
       "War                                                 1.208171   \n",
       "Western                                             0.950188   \n",
       "\n",
       "                               Subj: Short stories, Other  Suspense       War  \\\n",
       "Adventure                                        1.304505  0.395394  0.535788   \n",
       "Bildungsroman                                    0.850723  1.220929  1.273984   \n",
       "Biographical                                     0.597149  1.514172  0.759256   \n",
       "Christian                                        1.252187  0.966429  1.064673   \n",
       "Domestic                                         0.889054  1.062773  1.267809   \n",
       "Fantasy                                          1.168158  1.218685  0.851319   \n",
       "Historical                                       0.865257  1.272549  0.670122   \n",
       "Horror                                           1.316164  0.899935  1.066339   \n",
       "Humor                                            1.032447  1.031904  1.337105   \n",
       "Juvenile                                         1.051224  0.913928  0.390476   \n",
       "Love                                             0.893139  0.945160  1.349518   \n",
       "Mystery                                          1.416470  0.227160  1.122855   \n",
       "Novel                                            0.647046  1.200648  1.001797   \n",
       "Political                                        0.992919  0.666576  0.816596   \n",
       "Psychological                                    1.015520  0.900768  1.379233   \n",
       "SF                                               1.400358  0.842768  0.868885   \n",
       "Short stories                                    0.273412  1.677839  1.188912   \n",
       "Subj: Detective                                  1.279696  0.375517  1.151020   \n",
       "Subj: Fairy tales                                1.039184  1.103921  1.130254   \n",
       "Subj: Fantasy                                    1.192350  1.241712  1.058427   \n",
       "Subj: History                                    0.870761  1.098615  0.270344   \n",
       "Subj: Horror                                     0.950851  1.133118  1.051627   \n",
       "Subj: Humor                                      0.957353  0.993490  1.136787   \n",
       "Subj: Juvenile                                   1.104837  1.034262  0.692442   \n",
       "Subj: Man-woman                                  0.974368  1.005327  1.383303   \n",
       "Subj: SF, American                               1.384696  1.058731  1.015579   \n",
       "Subj: SF, Other                                  1.368070  0.988589  0.998778   \n",
       "Subj: Short stories, American                    0.799224  1.218772  1.208171   \n",
       "Subj: Short stories, Other                       0.027920  1.487203  0.921068   \n",
       "Suspense                                         1.487203  0.039120  0.861483   \n",
       "War                                              0.921068  0.861483  0.000000   \n",
       "Western                                          1.097782  1.026185  0.886739   \n",
       "\n",
       "                                Western  \n",
       "Adventure                      0.706236  \n",
       "Bildungsroman                  1.143728  \n",
       "Biographical                   0.896298  \n",
       "Christian                      1.019380  \n",
       "Domestic                       1.136656  \n",
       "Fantasy                        0.732397  \n",
       "Historical                     0.561604  \n",
       "Horror                         0.878808  \n",
       "Humor                          1.328879  \n",
       "Juvenile                       0.592424  \n",
       "Love                           1.195747  \n",
       "Mystery                        1.077007  \n",
       "Novel                          1.205312  \n",
       "Political                      1.243525  \n",
       "Psychological                  1.258955  \n",
       "SF                             1.015550  \n",
       "Short stories                  1.127243  \n",
       "Subj: Detective                1.073236  \n",
       "Subj: Fairy tales              1.139731  \n",
       "Subj: Fantasy                  0.914391  \n",
       "Subj: History                  0.849443  \n",
       "Subj: Horror                   0.917277  \n",
       "Subj: Humor                    1.045245  \n",
       "Subj: Juvenile                 0.613914  \n",
       "Subj: Man-woman                1.348799  \n",
       "Subj: SF, American             0.993302  \n",
       "Subj: SF, Other                1.027818  \n",
       "Subj: Short stories, American  0.950188  \n",
       "Subj: Short stories, Other     1.097782  \n",
       "Suspense                       1.026185  \n",
       "War                            0.886739  \n",
       "Western                        0.000000  \n",
       "\n",
       "[32 rows x 32 columns]"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# cosine distances on normalized\n",
    "\n",
    "normedsansoverlap = dict()\n",
    "\n",
    "for g1 in genrenames:\n",
    "    if g1.startswith('random') or g1.endswith(' B'):\n",
    "        continue\n",
    "        \n",
    "        # We don't have social ground truth about the random sets\n",
    "        # and the B genres are only there as self-comparisons, not in\n",
    "        # their own right.\n",
    "        \n",
    "    normedsansoverlap[g1] = dict()\n",
    "    \n",
    "    for g2 in genrenames:\n",
    "        intersected = g1 + '-Not-' + g2\n",
    "        \n",
    "        if g2.startswith('random') or g2.endswith(' B'):\n",
    "            continue\n",
    "        elif g1 == g2:\n",
    "            actualg2 = g1 + ' B'\n",
    "            if actualg2 not in genrenames:\n",
    "                normedsansoverlap[g1][g2] = 0\n",
    "                continue\n",
    "            else:\n",
    "                selfcomparison = spatial.distance.cosine(normal_vectors[g1]['self'], normal_vectors[actualg2]['self'])\n",
    "                normedsansoverlap[g1][g2] = selfcomparison\n",
    "        \n",
    "        elif intersected not in intersection_genres:\n",
    "            straightforward = spatial.distance.cosine(normal_vectors[g1]['self'], normal_vectors[g2]['self'])\n",
    "            normedsansoverlap[g1][g2] = straightforward\n",
    "        \n",
    "        else:\n",
    "            normedsansoverlap[g1][g2] = spatial.distance.cosine(normal_vectors[g1][g2], normal_vectors[g2][g1])\n",
    "\n",
    "normedmatrix = pd.DataFrame(normedsansoverlap)\n",
    "normedmatrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(-0.38437726407210876, 6.5426950754523945e-19) n = 496\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x121c66f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "socialvals, normedvals, comparisons = compare_to_social(social, normedmatrix, use_self = False)\n",
    "print(pearsonr(socialvals, normedvals), \"n = \" + str(len(normedvals)))\n",
    "plt.scatter(normedvals, socialvals)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.38437726407210876,\n",
       " 6.5426950754523945e-19,\n",
       " -0.45695670116953979,\n",
       " -0.30671328532080494)"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pearsonr_ci(np.array(normedvals), np.array(socialvals))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Interpretation\n",
    "\n",
    "Centering the topic vectors on a running-average topic vector for the publication date before comparing them significantly improves correlation with our social ground truth."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-0.434750918698 -0.332594442354\n"
     ]
    }
   ],
   "source": [
    "uncertainty = boot_sample(socialvals, normedvals)\n",
    "print(uncertainty[500], uncertainty[9500])\n",
    "with open('../results/bootstrapped_topicdatenormed.txt', mode = 'w', encoding = 'utf-8') as f:\n",
    "    for u in uncertainty:\n",
    "        f.write(str(u) + '\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
